Messages in this thread | | | Date | Thu, 3 Sep 2009 19:58:23 +0200 | From | Oleg Nesterov <> | Subject | Re: binfmt_flat.c && bprm->cred (Was: [PATCH 0/1] exec: do not sleep in TASK_TRACED under ->cred_guard_mutex) |
| |
On 09/03, Cyrill Gorcunov wrote: > > [Oleg Nesterov - Thu, Sep 03, 2009 at 06:29:39PM +0200] > | On 09/03, Oleg Nesterov wrote: > | > > | > load_flat_shared_library() does something strange (but hopefully this > | > patch doesn't break it). I do not understand why does it create the > | > new bprm. Afaics, it could reuse bprm pointer which comes as an argument > | > of ->load_binary(), all we need is to temporary change/restore bprm->file > | > for load_flat_file(). > | > | IOW, afaics the patch below makes sense. Imho it is a bit ugly binfmt_flat.c > | plays with prepare_exec_creds(). > | > | But again, I don't understand this code, and I didn't even try to compile > | this patch. > | > | Oleg. > | > ... > | -static int load_flat_shared_library(int id, struct lib_info *libs) > | +static int load_flat_shared_library(struct linux_binprm *bprm, int id, > | + struct lib_info *libs) > | { > ... > | + sprintf(buf, "/lib/lib%d.so", id); > > Hi Oleg, perhaps it is a good moment to switch sprintf to snprintf > as well? buf is only 16 bytes long so we have 4 byte room for number.
Agreed. As you pointed out privately we have MAX_SHARED_LIBS=4, but still snprintf() is safer.
Oleg.
| |