mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 21:53:44 +00:00
flat: fix uninitialized ptr with shared libs
commit 3440625d78
upstream.
The new credentials code broke load_flat_shared_library() as it now uses
an uninitialized cred pointer.
Reported-by: Bernd Schmidt <bernds_cb1@t-online.de>
Tested-by: Bernd Schmidt <bernds_cb1@t-online.de>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
165e5c818c
commit
58d92bedd8
@ -824,15 +824,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) {
|
||||
allow_write_access(bprm.file);
|
||||
fput(bprm.file);
|
||||
bprm.file = NULL;
|
||||
}
|
||||
|
||||
abort_creds(bprm.cred);
|
||||
|
||||
out:
|
||||
allow_write_access(bprm.file);
|
||||
fput(bprm.file);
|
||||
|
||||
return(res);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user