Messages in this thread Patch in this message |  | | Date | Mon, 22 Jun 2009 11:36:30 +0100 | | From | Bernd Schmidt <> | | Subject | Fix for shared flat binary format in 2.6.30 |
| |
This fixes a crash in 2.6.30 with shared flat binaries. prepare_binfmt now requires a cred pointer to be set up, which isn't done in binfmt_flat.c.
Signed-off-by: Bernd Schmidt <bernds_cb1@t-online.de> Acked-by: David Howells <dhowells@redhat.com> -- This footer brought to you by insane German lawmakers. Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368 Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif Index: fs/binfmt_flat.c =================================================================== --- fs/binfmt_flat.c (revision 6766) +++ fs/binfmt_flat.c (working copy) @@ -853,14 +853,23 @@ static int load_flat_shared_library(int /* Open the file up */ bprm.filename = buf; bprm.file = open_exec(bprm.filename); + bprm.cred = NULL; res = PTR_ERR(bprm.file); if (IS_ERR(bprm.file)) return res; + bprm.cred = prepare_exec_creds(); + if (!bprm.cred) + goto out; + res = prepare_binprm(&bprm); if (res <= (unsigned long)-4096) res = load_flat_file(&bprm, libs, id, NULL, NULL); +out: + if (bprm.cred) + abort_creds (bprm.cred); + if (bprm.file) { allow_write_access(bprm.file); fput(bprm.file); |  |