Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 38547
b: refs/heads/master
c: dc02747
h: refs/heads/master
i:
  38545: 604213d
  38543: 7304426
v: v3
  • Loading branch information
Matthew Wilcox authored and Matthew Wilcox committed Oct 4, 2006
1 parent c1d4bc9 commit 9c2c3c1
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8d0b7d1055bedca784b143b0af9b37bd971b7cd2
refs/heads/master: dc02747da7897cb89b62bb08aeb06fa0bb1e7319
18 changes: 16 additions & 2 deletions trunk/fs/binfmt_som.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <linux/personality.h>
#include <linux/init.h>

#include <asm/a.out.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>

Expand Down Expand Up @@ -194,6 +195,7 @@ load_som_binary(struct linux_binprm * bprm, struct pt_regs * regs)
unsigned long som_entry;
struct som_hdr *som_ex;
struct som_exec_auxhdr *hpuxhdr;
struct files_struct *files;

/* Get the exec-header */
som_ex = (struct som_hdr *) bprm->buf;
Expand All @@ -208,15 +210,27 @@ 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 != size) {
if (retval >= 0)
retval = -EIO;
goto out_free;
}

files = current->files; /* Refcounted so ok */
retval = unshare_files();
if (retval < 0)
goto out_free;
#error "Fix security hole before enabling me"
if (files == current->files) {
put_files_struct(files);
files = NULL;
}

retval = get_unused_fd();
if (retval < 0)
goto out_free;
Expand Down

0 comments on commit 9c2c3c1

Please sign in to comment.