Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 559c9ac3 authored by Chandra Seetharaman's avatar Chandra Seetharaman Committed by Mark Fasheh
Browse files

configfs: handle kzalloc() failure in check_perm()



check_perm() does not drop the reference to the module when kzalloc()
failure occurs.

Signed-Off-By: default avatarChandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent e2057c5a
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -275,13 +275,14 @@ static int check_perm(struct inode * inode, struct file * file)
	 * it in file->private_data for easy access.
	 */
	buffer = kzalloc(sizeof(struct configfs_buffer),GFP_KERNEL);
	if (buffer) {
	if (!buffer) {
		error = -ENOMEM;
		goto Enomem;
	}
	init_MUTEX(&buffer->sem);
	buffer->needs_read_fill = 1;
	buffer->ops = ops;
	file->private_data = buffer;
	} else
		error = -ENOMEM;
	goto Done;

 Einval:
@@ -289,6 +290,7 @@ static int check_perm(struct inode * inode, struct file * file)
	goto Done;
 Eaccess:
	error = -EACCES;
 Enomem:
	module_put(attr->ca_owner);
 Done:
	if (error && item)