From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:50669) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8Zhk-00033g-49 for qemu-devel@nongnu.org; Mon, 03 Sep 2012 12:40:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T8Zhi-0007HU-Th for qemu-devel@nongnu.org; Mon, 03 Sep 2012 12:40:52 -0400 Date: Mon, 3 Sep 2012 13:41:29 -0300 From: Luiz Capitulino Message-ID: <20120903134129.74b4a264@doriath.home> In-Reply-To: <1346496778-15014-1-git-send-email-sw@weilnetz.de> References: <1346496778-15014-1-git-send-email-sw@weilnetz.de> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] json-parser: Fix potential NULL pointer segfault List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil Cc: qemu-trivial@nongnu.org, Anthony Liguori , qemu-devel@nongnu.org On Sat, 1 Sep 2012 12:52:58 +0200 Stefan Weil wrote: > Report from smatch: > json-parser.c:474 parse_object(62) error: potential null derefence 'dict'. > json-parser.c:553 parse_array(75) error: potential null derefence 'list'. > > Label out can be called with list == NULL. > > Signed-off-by: Stefan Weil > --- > json-parser.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/json-parser.c b/json-parser.c > index 457291b..c31c759 100644 > --- a/json-parser.c > +++ b/json-parser.c > @@ -471,7 +471,9 @@ static QObject *parse_object(JSONParserContext *ctxt, va_list *ap) > > out: > parser_context_restore(ctxt, saved_ctxt); > - QDECREF(dict); > + if (dict) { > + QDECREF(dict); > + } I prefer changing QDECREF() to a nop if obj is NULL. > return NULL; > } > > @@ -550,7 +552,9 @@ static QObject *parse_array(JSONParserContext *ctxt, va_list *ap) > > out: > parser_context_restore(ctxt, saved_ctxt); > - QDECREF(list); > + if (list) { > + QDECREF(list); > + } > return NULL; > } >