On 05/11/2016 02:27 PM, Erik Skultety wrote: > Both virGetLastError and virGetLastErrorMessage call virLastErrorObject method > that returns a thread-local error object. However, if a direct call to malloc > or pthread_setspecific (probably also due to malloc, since it sets ENOMEM) > fail, virLastErrorObject returns NULL which, although incorrectly interpreted > by virGetLastError as no error, still requires the caller to check for NULL > pointer. This isn't the case with virGetLastErrorMessage that also treated it > incorrectly as no error, but returned the literal "no error". > This patch tweaks the checks in the virGetLastErrorMessage function, so that > if virLastErrorObject failed, it returned "unknown error" which is equivalent > to the current approach with virGetLastError and if it returned NULL, > "unknown error" was set. > > Signed-off-by: Erik Skultety <eskultet@xxxxxxxxxx> > --- > src/util/virerror.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/util/virerror.c b/src/util/virerror.c > index 5d875e3..1177570 100644 > --- a/src/util/virerror.c > +++ b/src/util/virerror.c > @@ -281,9 +281,9 @@ const char * > virGetLastErrorMessage(void) > { > virErrorPtr err = virLastErrorObject(); > - if (!err || err->code == VIR_ERR_OK) > + if (err && err->code == VIR_ERR_OK) > return _("no error"); > - if (err->message == NULL) > + if (!err || !err->message) > return _("unknown error"); > return err->message; > } > ACK Thanks, Cole -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list