bdrv_unref() can be called with a NULL argument and doesn't do anything then. Make bdrv_unref_child() consistent with it.
Signed-off-by: Kevin Wolf <kw...@redhat.com> Reviewed-by: Jeff Cody <jc...@redhat.com> --- block.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/block.c b/block.c index f38146e..6490040 100644 --- a/block.c +++ b/block.c @@ -1104,12 +1104,17 @@ static void bdrv_detach_child(BdrvChild *child) void bdrv_unref_child(BlockDriverState *parent, BdrvChild *child) { - BlockDriverState *child_bs = child->bs; + BlockDriverState *child_bs; + + if (child == NULL) { + return; + } if (child->bs->inherits_from == parent) { child->bs->inherits_from = NULL; } + child_bs = child->bs; bdrv_detach_child(child); bdrv_unref(child_bs); } -- 1.8.3.1