diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2019-10-16 22:35:25 -0400 |
---|---|---|
committer | Eric Sandeen <sandeen@sandeen.net> | 2019-10-16 22:35:25 -0400 |
commit | d504cf0b0198998ae0158fd7a111c49fce4f6471 (patch) | |
tree | 0269e1657d1653e830a45285d192eccee7b14df9 | |
parent | 233fabee02b632b783aed9ad981908a2fab14cfa (diff) | |
download | xfsprogs-dev-d504cf0b0198998ae0158fd7a111c49fce4f6471.tar.gz |
libfrog: fix missing error checking in bitmap code
Check library calls for error codes being returned.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r-- | libfrog/bitmap.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/libfrog/bitmap.c b/libfrog/bitmap.c index be95965fcb..a75d085a9f 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. */ |