aboutsummaryrefslogtreecommitdiff
path: root/fs/binfmt_script.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-10-31 17:13:10 +0100
committerTakashi Iwai <tiwai@suse.de>2008-10-31 17:13:10 +0100
commit7b3b6e42032e94a6132a85642e95106f5346650e (patch)
tree8b2262291341d8a9f9b1e7e3c63a3289bb6c6de6 /fs/binfmt_script.c
parent04172c0b9ea5861e5cba7909da5297b3aedac9e1 (diff)
parent0173a3265b228da319ceb9c1ec6a5682fd1b2d92 (diff)
Merge commit 'v2.6.28-rc2' into topic/asoc
Diffstat (limited to 'fs/binfmt_script.c')
-rw-r--r--fs/binfmt_script.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/binfmt_script.c b/fs/binfmt_script.c
index 9e3963f7ebf..08343505e18 100644
--- a/fs/binfmt_script.c
+++ b/fs/binfmt_script.c
@@ -22,14 +22,15 @@ static int load_script(struct linux_binprm *bprm,struct pt_regs *regs)
char interp[BINPRM_BUF_SIZE];
int retval;
- if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!') || (bprm->sh_bang))
+ if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!') ||
+ (bprm->recursion_depth > BINPRM_MAX_RECURSION))
return -ENOEXEC;
/*
* This section does the #! interpretation.
* Sorta complicated, but hopefully it will work. -TYT
*/
- bprm->sh_bang = 1;
+ bprm->recursion_depth++;
allow_write_access(bprm->file);
fput(bprm->file);
bprm->file = NULL;