btrfs-progs: handle errors in get_inode_backref and fail in the caller
authorDavid Sterba <dsterba@suse.com>
Wed, 6 Jan 2016 14:08:46 +0000 (15:08 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 12 Jan 2016 14:01:09 +0000 (15:01 +0100)
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-check.c

index cb48b79..224bec0 100644 (file)
@@ -952,6 +952,8 @@ static struct inode_backref *get_inode_backref(struct inode_record *rec,
        }
 
        backref = malloc(sizeof(*backref) + namelen + 1);
+       if (!backref)
+               return NULL;
        memset(backref, 0, sizeof(*backref));
        backref->dir = dir;
        backref->namelen = namelen;
@@ -972,6 +974,7 @@ static int add_inode_backref(struct cache_tree *inode_cache,
        rec = get_inode_rec(inode_cache, ino, 1);
        BUG_ON(IS_ERR(rec));
        backref = get_inode_backref(rec, name, namelen, dir);
+       BUG_ON(!backref);
        if (errors)
                backref->errors |= errors;
        if (itemtype == BTRFS_DIR_INDEX_KEY) {