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

Commit 3440625d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

flat: fix uninitialized ptr with shared libs



The new credentials code broke load_flat_shared_library() as it now uses
an uninitialized cred pointer.

Reported-by: default avatarBernd Schmidt <bernds_cb1@t-online.de>
Tested-by: default avatarBernd Schmidt <bernds_cb1@t-online.de>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: David Howells <dhowells@redhat.com>
Cc: <stable@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 9e5cf0ca
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -828,15 +828,22 @@ static int load_flat_shared_library(int id, struct lib_info *libs)
	if (IS_ERR(bprm.file))
		return res;

	bprm.cred = prepare_exec_creds();
	res = -ENOMEM;
	if (!bprm.cred)
		goto out;

	res = prepare_binprm(&bprm);

	if (res <= (unsigned long)-4096)
		res = load_flat_file(&bprm, libs, id, NULL);
	if (bprm.file) {

	abort_creds(bprm.cred);

out:
	allow_write_access(bprm.file);
	fput(bprm.file);
		bprm.file = NULL;
	}

	return(res);
}