{
char abspath[XEN_BUFSIZE];
unsigned int len;
+ char *str, *ret = NULL;
snprintf(abspath, sizeof(abspath), "%s/%s", base, node);
- return xs_read(xenstore, 0, abspath, &len);
+ str = xs_read(xenstore, 0, abspath, &len);
+ if (str != NULL) {
+ /* move to qemu-allocated memory to make sure
+ * callers can savely qemu_free() stuff. */
+ ret = qemu_strdup(str);
+ free(str);
+ }
+ return ret;
}
int xenstore_write_int(const char *base, const char *node, int ival)
/* init new xendev */
xendev = qemu_mallocz(ops->size);
- if (!xendev)
- return NULL;
xendev->type = type;
xendev->dom = dom;
xendev->dev = dev;
continue;
xen_be_check_state(xendev);
}
- qemu_free(dev);
+ free(dev);
return 0;
}
pgmfns = qemu_mallocz(sizeof(unsigned long) * n_fbdirs);
fbmfns = qemu_mallocz(sizeof(unsigned long) * xenfb->fbpages);
- if (!pgmfns || !fbmfns)
- goto out;
xenfb_copy_mfns(mode, n_fbdirs, pgmfns, pd);
map = xc_map_foreign_pages(xen_xc, xenfb->c.xendev.dom,