Skip to contentSkip to conversation

net: Trivial cleanups around g_malloc()

PATCH Applied Markus Armbruster 3 participants 5 messages Dec 4, 2014 – Dec 19, 2014 Networking

lore
Share & tools
lore
#0 lore raw

cover net: Trivial cleanups around g_malloc()

Markus Armbruster (2):
net: Fuse g_malloc(); memset() into g_new0()
net: Use g_new() & friends where that makes obvious sense

 net/l2tpv3.c | 9 ++++-----
 net/queue.c  | 2 +-
 net/slirp.c  | 2 +-
 3 files changed, 6 insertions(+), 7 deletions(-)
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/2 net: Fuse g_malloc(); memset() into g_new0()

---
 net/l2tpv3.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
net/l2tpv3.c +1 -2
index 3b805a7..6014c43 100644
@@ -695,8 +695,7 @@ int net_init_l2tpv3(const NetClientOptions *opts,
         goto outerr;
     }
 
-    s->dgram_dst = g_malloc(sizeof(struct sockaddr_storage));
-    memset(s->dgram_dst, '\0' , sizeof(struct sockaddr_storage));
+    s->dgram_dst = g_new0(struct sockaddr_storage, 1);
     memcpy(s->dgram_dst, result->ai_addr, result->ai_addrlen);
     s->dst_size = result->ai_addrlen;
 
Signature · 1 line
1.9.3
#2 lore raw

PATCH 2/2 net: Use g_new() & friends where that makes obvious sense

In reply to Markus Armbruster

g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, for two reasons. One, it catches multiplication overflowing size_t. Two, it returns T * rather than void *, which lets the compiler catch more type errors.

This commit only touches allocations with size arguments of the form sizeof(T).

---
 net/l2tpv3.c | 6 +++---
 net/queue.c  | 2 +-
 net/slirp.c  | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)
net/l2tpv3.c +3 -3
index 6014c43..8c598b0 100644
@@ -489,12 +489,12 @@ static struct mmsghdr *build_l2tpv3_vector(NetL2TPV3State *s, int count)
     struct iovec *iov;
     struct mmsghdr *msgvec, *result;
 
-    msgvec = g_malloc(sizeof(struct mmsghdr) * count);
+    msgvec = g_new(struct mmsghdr, count);
     result = msgvec;
     for (i = 0; i < count ; i++) {
         msgvec->msg_hdr.msg_name = NULL;
         msgvec->msg_hdr.msg_namelen = 0;
-        iov =  g_malloc(sizeof(struct iovec) * IOVSIZE);
+        iov =  g_new(struct iovec, IOVSIZE);
         msgvec->msg_hdr.msg_iov = iov;
         iov->iov_base = g_malloc(s->header_size);
         iov->iov_len = s->header_size;
@@ -729,7 +729,7 @@ int net_init_l2tpv3(const NetClientOptions *opts,
     }
 
     s->msgvec = build_l2tpv3_vector(s, MAX_L2TPV3_MSGCNT);
-    s->vec = g_malloc(sizeof(struct iovec) * MAX_L2TPV3_IOVCNT);
+    s->vec = g_new(struct iovec, MAX_L2TPV3_IOVCNT);
     s->header_buf = g_malloc(s->header_size);
 
     qemu_set_nonblock(fd);
net/queue.c +1 -1
index f948318..ebbe2bb 100644
@@ -62,7 +62,7 @@ NetQueue *qemu_new_net_queue(void *opaque)
 {
     NetQueue *queue;
 
-    queue = g_malloc0(sizeof(NetQueue));
+    queue = g_new0(NetQueue, 1);
 
     queue->opaque = opaque;
     queue->nq_maxlen = 10000;
net/slirp.c +1 -1
index 377d7ef..0cbca3c 100644
@@ -652,7 +652,7 @@ static int slirp_guestfwd(SlirpState *s, const char *config_str,
             return -1;
         }
     } else {
-        fwd = g_malloc(sizeof(struct GuestFwd));
+        fwd = g_new(struct GuestFwd, 1);
         fwd->hd = qemu_chr_new(buf, p, NULL);
         if (!fwd->hd) {
             error_report("could not open guest forwarding device '%s'", buf);
Signature · 1 line
1.9.3
Reviewed-by on the v1 series
#3 lore raw
In reply to Markus Armbruster
Quoted 3 lines · Markus Armbruster

Markus Armbruster (2):
net: Fuse g_malloc(); memset() into g_new0()
net: Use g_new() & friends where that makes obvious sense

Quoted 6 lines
 net/l2tpv3.c | 9 ++++-----
 net/queue.c  | 2 +-
 net/slirp.c  | 2 +-
 3 files changed, 6 insertions(+), 7 deletions(-)
Signature · 2 lines
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org