]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
libfrog: fix missing error checking in bitmap code
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 17 Oct 2019 02:35:25 +0000 (22:35 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Thu, 17 Oct 2019 02:35:25 +0000 (22:35 -0400)
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>
libfrog/bitmap.c

index be95965fcbe4b8d82240549018c273a5acbdb45f..a75d085a9f194aefc2aa209b66f85963a4ed21f7 100644 (file)
@@ -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. */