[PATCH] v9fs_vfs_mkdir(): fix a double free
authorAdrian Bunk <bunk@stusta.de>
Thu, 8 Feb 2007 22:20:38 +0000 (14:20 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 9 Feb 2007 17:25:47 +0000 (09:25 -0800)
Fix a double free of "dfid" introduced by commit
da977b2c7eb4d6312f063a7b486f2aad99809710 and spotted by the Coverity
checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/9p/vfs_inode.c

index 9109ba1d6969e33ee180a9c4cec5bcd2339ca9f1..378767c07bf11f746d1387e11dcebc087912adbd 100644 (file)
@@ -585,17 +585,14 @@ static int v9fs_vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
        if (IS_ERR(inode)) {
                err = PTR_ERR(inode);
                inode = NULL;
-               goto clean_up_fids;
+               v9fs_fid_destroy(vfid);
+               goto error;
        }
 
        dentry->d_op = &v9fs_dentry_operations;
        d_instantiate(dentry, inode);
        return 0;
 
-clean_up_fids:
-       if (vfid)
-               v9fs_fid_destroy(vfid);
-
 clean_up_dfid:
        v9fs_fid_clunk(v9ses, dfid);