Eric Blake wrote: > On 05/17/2010 06:38 AM, Jim Meyering wrote: >> Another... >> >>>From 09579adb73f04c5b940ad28cdfc242cff0726e0e Mon Sep 17 00:00:00 2001 >> From: Jim Meyering <meyering@xxxxxxxxxx> >> Date: Mon, 17 May 2010 14:38:14 +0200 >> Subject: [PATCH] umlAutostartDomain: avoid NULL-deref upon virGetLastError failure >> >> * src/uml/uml_driver.c (umlAutostartDomain): Handle a NULL return >> from virGetLastError. >> --- >> src/uml/uml_driver.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c >> index 63fe808..ffb87c8 100644 >> --- a/src/uml/uml_driver.c >> +++ b/src/uml/uml_driver.c >> @@ -157,7 +157,7 @@ umlAutostartDomain(void *payload, const char *name ATTRIBUTE_UNUSED, void *opaqu >> if (umlStartVMDaemon(data->conn, data->driver, vm) < 0) { >> virErrorPtr err = virGetLastError(); >> VIR_ERROR(_("Failed to autostart VM '%s': %s"), >> - vm->def->name, err->message); >> + vm->def->name, err ? err->message : ""); > > That looks awkward to end with a trailing space. Might it be better to use: > > err ? err->message : _("unknown reason") > > At any rate, ACK that this fixes a potential NULL deref. That's a good point. I considered going one step further and changing virGetLastError so that it never returns NULL, instead returning a pointer to a static buffer where err->message is something like "internal failure". Otherwise, many uses of virGetLastError have to use the same awkward idiom: err ? err->message : "..." If no one objects to such a change, I'll add it to my low-priority list. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list