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

Commit baf2b5fa authored by Richard Weinberger's avatar Richard Weinberger Committed by Nikhilesh Reddy
Browse files

UBIFS: Fix possible memory leak in ubifs_readdir()



If ubifs_tnc_next_ent() returns something else than -ENOENT
we leak file->private_data.

CRs-Fixed: 975289
Change-Id: I0194a58b45a8d4f103c67e48aafcdfa655dba92e
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
Reviewed-by: default avatarDavid Gstir <david@sigma-star.at>
Git-commit: aeeb14f763917ccf639a602cfbeee6957fd944a2
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


Signed-off-by: default avatarNikhilesh Reddy <reddyn@codeaurora.org>
parent bb4492f0
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -451,13 +451,14 @@ static int ubifs_readdir(struct file *file, struct dir_context *ctx)
	}

out:
	kfree(file->private_data);
	file->private_data = NULL;

	if (err != -ENOENT) {
		ubifs_err(c, "cannot find next direntry, error %d", err);
		return err;
	}

	kfree(file->private_data);
	file->private_data = NULL;
	/* 2 is a special value indicating that there are no more direntries */
	ctx->pos = 2;
	return 0;