Re: [PATCH] util: Prevent a NULl pointer from being accessed
On Wed, Feb 12, 2020 at 22:10:20 +0800, Yi Wang wrote: > From: Huang Zijiang > > virJSONValueObjectGetObject maybe return NULL if the key is > missing or if value is not the correct TYPE, so we have to prevent > a NULl pointer from being accessed. > > Signed-off-by: Huang Zijiang > Signed-off-by: Yi Wang > --- > src/util/virstoragefile.c | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c > index e46ac99..53224b5 100644 > --- a/src/util/virstoragefile.c > +++ b/src/util/virstoragefile.c > @@ -3378,6 +3378,11 @@ > virStorageSourceParseBackingJSONSheepdog(virStorageSourcePtr src, > const char *filename; > const char *vdi = virJSONValueObjectGetString(json, "vdi"); > virJSONValuePtr server = virJSONValueObjectGetObject(json, "server"); > +if (!server) { > +virReportError(VIR_ERR_INVALID_ARG, "%s", > +_("missing server in JSON backing volume > definition")); > + return -1; > +} Server is passed only to virStorageSourceParseBackingJSONSocketAddress as the '@json' variable where it's checked and the same error is actually reported, so it's not needed to check it here. signature.asc Description: PGP signature
Re: [PATCH] util: Prevent a NULl pointer from being accessed
On Wed, Feb 12, 2020 at 22:10:42 +0800, Yi Wang wrote: > From: Huang Zijiang > > virJSONValueObjectGetObject maybe return NULL if the key is > missing or if value is not the correct TYPE, so we have to prevent > a NULl pointer from being accessed. > > Signed-off-by: Huang Zijiang > Signed-off-by: Yi Wang > --- > src/util/virqemu.c | 5 + > 1 file changed, 5 insertions(+) > > diff --git a/src/util/virqemu.c b/src/util/virqemu.c > index f3a233a..29fbe4e 100644 > --- a/src/util/virqemu.c > +++ b/src/util/virqemu.c > @@ -257,6 +257,11 @@ virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, > const char *type = virJSONValueObjectGetString(objprops, "qom-type"); > const char *alias = virJSONValueObjectGetString(objprops, "id"); > virJSONValuePtr props = virJSONValueObjectGetObject(objprops, "props"); > +if (!props) { > +virReportError(VIR_ERR_INVALID_ARG, "%s", > + _("reply was missing return props data")); This error message is misleading. There's no reply, but rather this is an internally generated JSON struct > +return -1; > +} > > return virQEMUBuildObjectCommandlineFromJSONInternal(buf, type, alias, > props); This function checks 'props' internally. What is this patch supposed to fix?
[PATCH] util: Prevent a NULl pointer from being accessed
From: Huang Zijiang virJSONValueObjectGetObject maybe return NULL if the key is missing or if value is not the correct TYPE, so we have to prevent a NULl pointer from being accessed. Signed-off-by: Huang Zijiang Signed-off-by: Yi Wang --- src/util/virqemu.c | 5 + 1 file changed, 5 insertions(+) diff --git a/src/util/virqemu.c b/src/util/virqemu.c index f3a233a..29fbe4e 100644 --- a/src/util/virqemu.c +++ b/src/util/virqemu.c @@ -257,6 +257,11 @@ virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf, const char *type = virJSONValueObjectGetString(objprops, "qom-type"); const char *alias = virJSONValueObjectGetString(objprops, "id"); virJSONValuePtr props = virJSONValueObjectGetObject(objprops, "props"); +if (!props) { +virReportError(VIR_ERR_INVALID_ARG, "%s", + _("reply was missing return props data")); +return -1; +} return virQEMUBuildObjectCommandlineFromJSONInternal(buf, type, alias, props); } -- 1.9.1