[Libvir] unchecked `malloc' calls

Jim Meyering meyering at redhat.com
Thu Mar 30 10:26:31 UTC 2006


Hello,

In browsing through the code, I noticed that there are many
places in which the code doesn't check for malloc returning NULL.
E.g.,

  ./virsh.c:    ids = malloc(sizeof(int) * maxid);
  ./virsh.c-    virConnectListDomains(ctl->conn, &ids[0], maxid);

  ./virsh.c:    *res = malloc(sz + 1);
  ./virsh.c-    memcpy(*res, tkstr, sz);

  ./virsh.c:        res = malloc(strlen(name) + 3);
  ./virsh.c-        sprintf(res, "--%s", name);

  ./xmlrpc.c:    buf = malloc(sizeof(*buf));
  ./xmlrpc.c-    buf->size = 1024;

  ./xmlrpc.c:    xmlRpcValueDictElementPtr ret = malloc(sizeof(*ret));
  ./xmlrpc.c-    xmlNodePtr cur;
  ./xmlrpc.c-
  ./xmlrpc.c-    memset(ret, 0, sizeof(*ret));

At first, seeing so many, I thought there must be a wrapper
that handles the case of a NULL return value.  But there are
many places where the code *does* check for NULL.

This may be a clue.  Maybe it's planned...

  ./libvirt.c: * TODO:
  ...
  ./libvirt.c: * - memory wrappers for malloc/free ?

Jim




More information about the libvir-list mailing list