浏览代码

fix leak in __logfs_create()

if kmalloc fails, we still need to drop the inode, as we do
on other failure exits.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 15 年之前
父节点
当前提交
256249584b
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      fs/logfs/dir.c

+ 4 - 1
fs/logfs/dir.c

@@ -434,8 +434,11 @@ static int __logfs_create(struct inode *dir, struct dentry *dentry,
 	int ret;
 	int ret;
 
 
 	ta = kzalloc(sizeof(*ta), GFP_KERNEL);
 	ta = kzalloc(sizeof(*ta), GFP_KERNEL);
-	if (!ta)
+	if (!ta) {
+		inode->i_nlink--;
+		iput(inode);
 		return -ENOMEM;
 		return -ENOMEM;
+	}
 
 
 	ta->state = CREATE_1;
 	ta->state = CREATE_1;
 	ta->ino = inode->i_ino;
 	ta->ino = inode->i_ino;