Hi Zach,working on that. v4 will take a little longer since I'm working on some more significant changes to make sure I reset all of the possible data in the linux_binprm struct and reuse the code from do_execve_common for that as much as possible.
I like the idea behind these clean ups. Thanks for working on them!
On Fri, Aug 02, 2013 at 04:21:40PM -0700, Zach Levis wrote:This v3 is based off Oleg's changes from "exec: more cleanups" and
"exec: minor cleanups + minor fix"
I would echo all of Oleg's comments on the series so far. Additionally,
please use "scripts/checkpatch.pl" for checking your patches for commonwill do
errors (see item 4 in Documentation/SubmittingPatches). I see a number
of problems that are detected by the tool:
WARNING: line over 80 characters
#52: FILE: fs/exec.c:1403:
+ if (retval == -ELOOP && bprm->recursion_depth == 0) { /* cur, previous */
...
ERROR: trailing statements should be on next line
#269: FILE: fs/binfmt_em86.c:70:
+ if (retval < 0) return retval;
...
ERROR: "(foo*)" should be "(foo *)"
#341: FILE: fs/binfmt_flat.c:791:
+ memset((void*)(datapos + data_len), 0, bss_len +
etc.
After that, be sure to use "scripts/get_maintainer.pl" for generatingSorry about that. Will do in the future
your CC list (see item 5 in SubmittingPatches; I initially missed this
series -- adding more CCs for people that have touched the code can help
with your reviews).
Well, then it seems I'll be sending the next rev from my personal email, seeing as I've only got a week and a half left on my internship here (and until I lose access to my IBM email).
Also, you only need to include a single Signed-off-by line for
yourself. :)
Commit 2/3 has a link to a gist with testcases for the scripts -- I stuck them in a gist so they didn't clog up the commit message. If there's a way you'd prefer me to reference them let me know.
It incorporates Oleg and Andrew's suggestions and takes care
of the issue from Dan's patch "fs/binfmts: double unlock in
search_binary_handler()"
In the commit message, can you include some examples of how to generate
the loops you're encountering? This helps people understand why you're
doing what you're doing and provides a way for people to reproduce the
conditions themselves.
Thanks,
-Kees