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

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
...@@ -828,15 +828,22 @@ static int load_flat_shared_library(int id, struct lib_info *libs) ...@@ -828,15 +828,22 @@ static int load_flat_shared_library(int id, struct lib_info *libs)
if (IS_ERR(bprm.file)) if (IS_ERR(bprm.file))
return res; return res;
bprm.cred = prepare_exec_creds();
res = -ENOMEM;
if (!bprm.cred)
goto out;
res = prepare_binprm(&bprm); res = prepare_binprm(&bprm);
if (res <= (unsigned long)-4096) if (res <= (unsigned long)-4096)
res = load_flat_file(&bprm, libs, id, NULL); res = load_flat_file(&bprm, libs, id, NULL);
if (bprm.file) {
allow_write_access(bprm.file); abort_creds(bprm.cred);
fput(bprm.file);
bprm.file = NULL; out:
} allow_write_access(bprm.file);
fput(bprm.file);
return(res); return(res);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment