From: Darrick J. Wong Date: Thu, 17 Oct 2019 02:35:25 +0000 (-0400) Subject: libfrog: fix missing error checking in bitmap code X-Git-Tag: v5.3.0-rc2~80 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d504cf0b0198998ae0158fd7a111c49fce4f6471;p=thirdparty%2Fxfsprogs-dev.git libfrog: fix missing error checking in bitmap code Check library calls for error codes being returned. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/libfrog/bitmap.c b/libfrog/bitmap.c index be95965fc..a75d085a9 100644 --- a/libfrog/bitmap.c +++ b/libfrog/bitmap.c @@ -72,21 +72,30 @@ bitmap_alloc( struct bitmap **bmapp) { struct bitmap *bmap; + int ret; bmap = calloc(1, sizeof(struct bitmap)); if (!bmap) return errno; bmap->bt_tree = malloc(sizeof(struct avl64tree_desc)); if (!bmap->bt_tree) { - free(bmap); - return errno; + ret = errno; + goto out; } - pthread_mutex_init(&bmap->bt_lock, NULL); + ret = pthread_mutex_init(&bmap->bt_lock, NULL); + if (ret) + goto out_tree; + avl64_init_tree(bmap->bt_tree, &bitmap_ops); *bmapp = bmap; return 0; +out_tree: + free(bmap->bt_tree); +out: + free(bmap); + return ret; } /* Free a bitmap. */