Re: [PATCH v3 0/3] fs/binfmts: Improve handling of loops

From: Zach Levis
Date: Wed Aug 07 2013 - 19:30:56 EST

On 08/06/2013 02:11 PM, Kees Cook wrote:
Hi Zach,

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,
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.

please use "scripts/" for checking your patches for common
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 +


will do
After that, be sure to use "scripts/" for generating
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).
Sorry about that. Will do in the future

Also, you only need to include a single Signed-off-by line for
yourself. :)
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).

It incorporates Oleg and Andrew's suggestions and takes care
of the issue from Dan's patch "fs/binfmts: double unlock in

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.
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.



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at