Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'to-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland

* 'to-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:
tracehook: exec double-reporting fix

+9 -1
+9 -1
fs/exec.c
··· 1159 1159 */ 1160 1160 int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs) 1161 1161 { 1162 + unsigned int depth = bprm->recursion_depth; 1162 1163 int try,retval; 1163 1164 struct linux_binfmt *fmt; 1164 1165 #ifdef __alpha__ ··· 1220 1219 continue; 1221 1220 read_unlock(&binfmt_lock); 1222 1221 retval = fn(bprm, regs); 1222 + /* 1223 + * Restore the depth counter to its starting value 1224 + * in this call, so we don't have to rely on every 1225 + * load_binary function to restore it on return. 1226 + */ 1227 + bprm->recursion_depth = depth; 1223 1228 if (retval >= 0) { 1224 - tracehook_report_exec(fmt, bprm, regs); 1229 + if (depth == 0) 1230 + tracehook_report_exec(fmt, bprm, regs); 1225 1231 put_binfmt(fmt); 1226 1232 allow_write_access(bprm->file); 1227 1233 if (bprm->file)