+Tue Jul 31 10:24:23 EST 2007 Daniel P. Berrange <berrange@redhat.com>
+
+ * src/qemu_conf.c, src/xml.c, tests/qemuxml2argvtest.c,
+ tests/qemuxml2xmltest.c: Fix a couple of memory leaks
+
Mon Jul 30 14:40:23 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* src/qemu_conf.c: Validate requested architecture and reject
void qemudFreeVMDef(struct qemud_vm_def *def) {
struct qemud_vm_disk_def *disk = def->disks;
struct qemud_vm_net_def *net = def->nets;
+ struct qemud_vm_input_def *input = def->inputs;
while (disk) {
struct qemud_vm_disk_def *prev = disk;
net = net->next;
free(prev);
}
+ while (input) {
+ struct qemud_vm_input_def *prev = input;
+ input = input->next;
+ free(prev);
+ }
free(def);
}
}
obj = xmlXPathEval(BAD_CAST xpath, ctxt);
if ((obj == NULL) || (obj->type != XPATH_STRING) ||
- (obj->stringval == NULL) || (obj->stringval[0] == 0))
+ (obj->stringval == NULL) || (obj->stringval[0] == 0)) {
+ if (obj)
+ xmlXPathFreeObject(obj);
return(NULL);
+ }
ret = strdup((char *) obj->stringval);
xmlXPathFreeObject(obj);
if (ret == NULL) {
if (str != NULL && !strcmp(str, "localtime")) {
virBufferAdd(buf, "(localtime 1)", 13);
}
+ if (str)
+ free(str);
virBufferAdd(buf, "))", 2);
char **argv = NULL;
char **tmp = NULL;
int ret = -1, len;
- struct qemud_vm_def *vmdef;
+ struct qemud_vm_def *vmdef = NULL;
struct qemud_vm vm;
if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0)
free(argv);
}
+ qemudFreeVMDef(vmdef);
return ret;
}
char *xmlPtr = &(xmlData[0]);
char *actual = NULL;
int ret = -1;
- struct qemud_vm_def *vmdef;
+ struct qemud_vm_def *vmdef = NULL;
struct qemud_vm vm;
if (virtTestLoadFile(xml, &xmlPtr, MAX_FILE) < 0)
fail:
free(actual);
-
+ qemudFreeVMDef(vmdef);
return ret;
}