X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=fs%2Fbinfmt_som.c;h=fdc36bfd6a7beb8d1b63b91520ece0a7d2a347b7;hb=8962cadbe7cbc4ed0fff94f56ebab505a10afd2e;hp=32b5d625ce9c7c311835139eea61e8b98896a7b1;hpb=b197ba3c70638a3a2ae39296781912f26ac0f991;p=linux-2.6-omap-h63xx.git diff --git a/fs/binfmt_som.c b/fs/binfmt_som.c index 32b5d625ce9..fdc36bfd6a7 100644 --- a/fs/binfmt_som.c +++ b/fs/binfmt_som.c @@ -43,7 +43,7 @@ static int load_som_library(struct file *); * don't even try. */ #if 0 -static int som_core_dump(long signr, struct pt_regs * regs); +static int som_core_dump(long signr, struct pt_regs *regs, unsigned long limit); #else #define som_core_dump NULL #endif @@ -208,15 +208,18 @@ load_som_binary(struct linux_binprm * bprm, struct pt_regs * regs) size = som_ex->aux_header_size; if (size > SOM_PAGESIZE) goto out; - hpuxhdr = (struct som_exec_auxhdr *) kmalloc(size, GFP_KERNEL); + hpuxhdr = kmalloc(size, GFP_KERNEL); if (!hpuxhdr) goto out; retval = kernel_read(bprm->file, som_ex->aux_header_location, (char *) hpuxhdr, size); - if (retval < 0) + if (retval != size) { + if (retval >= 0) + retval = -EIO; goto out_free; -#error "Fix security hole before enabling me" + } + retval = get_unused_fd(); if (retval < 0) goto out_free;