Commit 927cc5ce authored by Zhihao Cheng's avatar Zhihao Cheng Committed by Richard Weinberger
Browse files

ubifs: ubifs_add_orphan: Fix a memory leak bug



Memory leak occurs when files with extended attributes are added to
orphan list.

Signed-off-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
Fixes: 988bec41 ("ubifs: orphan: Handle xattrs like files")
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 81423c78
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ int ubifs_add_orphan(struct ubifs_info *c, ino_t inum)
	int err = 0;
	ino_t xattr_inum;
	union ubifs_key key;
	struct ubifs_dent_node *xent;
	struct ubifs_dent_node *xent, *pxent = NULL;
	struct fscrypt_name nm = {0};
	struct ubifs_orphan *xattr_orphan;
	struct ubifs_orphan *orphan;
@@ -181,11 +181,16 @@ int ubifs_add_orphan(struct ubifs_info *c, ino_t inum)
		xattr_inum = le64_to_cpu(xent->inum);

		xattr_orphan = orphan_add(c, xattr_inum, orphan);
		if (IS_ERR(xattr_orphan))
		if (IS_ERR(xattr_orphan)) {
			kfree(xent);
			return PTR_ERR(xattr_orphan);
		}

		kfree(pxent);
		pxent = xent;
		key_read(c, &xent->key, &key);
	}
	kfree(pxent);

	return 0;
}