block/qapi: Plug memory leak on query-block error path
authorMarkus Armbruster <armbru@redhat.com>
Fri, 20 Nov 2015 12:53:35 +0000 (13:53 +0100)
committerKevin Wolf <kwolf@redhat.com>
Wed, 25 Nov 2015 13:27:43 +0000 (14:27 +0100)
Spotted by Coverity.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/qapi.c

index d20262decb231a4bd08a486c1db7aadaca73a38d..267f147fe3ddb4187dd97b908e460cb5c9844cbf 100644 (file)
@@ -436,7 +436,9 @@ BlockInfoList *qmp_query_block(Error **errp)
         bdrv_query_info(blk, &info->value, &local_err);
         if (local_err) {
             error_propagate(errp, local_err);
-            goto err;
+            g_free(info);
+            qapi_free_BlockInfoList(head);
+            return NULL;
         }
 
         *p_next = info;
@@ -444,10 +446,6 @@ BlockInfoList *qmp_query_block(Error **errp)
     }
 
     return head;
-
- err:
-    qapi_free_BlockInfoList(head);
-    return NULL;
 }
 
 BlockStatsList *qmp_query_blockstats(bool has_query_nodes,