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