If bdrv_unref() is passed a NULL BDS pointer, it is safe to exit with no operation. This will allow cleanup code to blindly call bdrv_unref() on a BDS that has been initialized to NULL.
Reviewed-by: Max Reitz <mre...@redhat.com> Signed-off-by: Jeff Cody <jc...@redhat.com> --- block.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block.c b/block.c index 23f366d..f79efc8 100644 --- a/block.c +++ b/block.c @@ -5385,6 +5385,9 @@ void bdrv_ref(BlockDriverState *bs) * deleted. */ void bdrv_unref(BlockDriverState *bs) { + if (!bs) { + return; + } assert(bs->refcnt > 0); if (--bs->refcnt == 0) { bdrv_delete(bs); -- 1.9.3