<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-11-23 9:11 GMT+01:00 John Crispin <span dir="ltr"><<a href="mailto:blogic@openwrt.org" target="_blank">blogic@openwrt.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><br>
<br>
On 23/11/2015 09:09, Etienne Champetier wrote:<br>
> Hi,<br>
><br>
> Le 23 nov. 2015 08:18, "John Crispin" <<a href="mailto:blogic@openwrt.org">blogic@openwrt.org</a><br>
</span>> <mailto:<a href="mailto:blogic@openwrt.org">blogic@openwrt.org</a>>> a écrit :<br>
<span class="">>><br>
>><br>
>><br>
>> On 23/11/2015 01:39, Etienne CHAMPETIER wrote:<br>
>> > spawn_jail(void) produce a compilation error,<br>
>> > so we use spawn_jail()<br>
>> ><br>
>> > Signed-off-by: Etienne CHAMPETIER <<a href="mailto:champetier.etienne@gmail.com">champetier.etienne@gmail.com</a><br>
</span>> <mailto:<a href="mailto:champetier.etienne@gmail.com">champetier.etienne@gmail.com</a>>><br>
<span class="">>> > ---<br>
>> >  jail/jail.c | 4 ++--<br>
>> >  1 file changed, 2 insertions(+), 2 deletions(-)<br>
>> ><br>
>> > diff --git a/jail/jail.c b/jail/jail.c<br>
>> > index 56dc9ca..08babde 100644<br>
>> > --- a/jail/jail.c<br>
>> > +++ b/jail/jail.c<br>
>> > @@ -272,7 +272,7 @@ static int exec_jail()<br>
>> >       exit(EXIT_FAILURE);<br>
>> >  }<br>
>> ><br>
>> > -static int spawn_jail(void *arg)<br>
>> > +static int spawn_jail()<br>
>><br>
>> Hi,<br>
>><br>
>> this is still wrong. also you might want to write a sentence why it is<br>
>> useless.<br>
>><br>
><br>
> Well, we don't use it, and passing arg to not use it really doesn't<br>
> improve readability.<br>
><br>
> I know it break your code style, but it seems we can't have both here :(<br>
><br>
> Etienne<br>
><br>
>>         John<br>
<br>
<br>
</span>i wont merge it until there is a (void). it is valid code. try it and<br>
you will see that i am right.<br>
<br></blockquote><div>sorry my commit message is bad<br></div><div><br></div><div>try to put NULL at the end of the clone() call, and try with <span class="">spawn_jail() and </span><br><span class="">spawn_jail(void), and you will see<br><br></span></div><div><span class="">i know that </span><span class="">spawn_jail(void) is valid code, but then the clone call refuses to compile<br><br></span><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><span class=""><i>/home/etienne/procd/jail/jail.c: In function ‘main’:</i></span><br><span class=""><i>/home/etienne/procd/jail/jail.c:381:4: error: passing argument 1 of ‘clone’ from incompatible pointer type [-Werror]</i></span><br><span class=""><i>    CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWIPC | SIGCHLD, NULL);</i></span><br><span class=""><i>    ^</i></span><br><span class=""><i>In file included from /usr/include/sched.h:41:0,</i></span><br><span class=""><i>                 from /home/etienne/procd/jail/jail.c:26:</i></span><br><span class=""><i>/usr/include/x86_64-linux-gnu/bits/sched.h:81:12: note: expected ‘int (*)(void *)’ but argument is of type ‘int (*)(void)’</i></span><br><span class=""><i> extern int clone (int (*__fn) (void *__arg), void *__child_stack,</i></span><br><span class=""><i>            ^</i></span><br><span class=""><i>cc1: all warnings being treated as errors</i></span><br><span class=""><i>make[2]: *** [CMakeFiles/ujail.dir/jail/jail.c.o] Error 1</i></span><br><span class=""><i>make[1]: *** [CMakeFiles/ujail.dir/all] Error 2</i></span><br><span class=""><i>make: *** [all] Error 2</i></span><br><span class=""></span></blockquote><span class=""><br><br><br><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
>><br>
>> >  {<br>
>> >       if (<a href="http://opts.name" rel="noreferrer" target="_blank">opts.name</a> <<a href="http://opts.name" rel="noreferrer" target="_blank">http://opts.name</a>> && sethostname(<a href="http://opts.name" rel="noreferrer" target="_blank">opts.name</a><br>
> <<a href="http://opts.name" rel="noreferrer" target="_blank">http://opts.name</a>>, strlen(<a href="http://opts.name" rel="noreferrer" target="_blank">opts.name</a> <<a href="http://opts.name" rel="noreferrer" target="_blank">http://opts.name</a>>))) {<br>
<div class=""><div class="h5">>> >               ERROR("failed to sethostname: %s\n", strerror(errno));<br>
>> > @@ -424,7 +424,7 @@ int main(int argc, char **argv)<br>
>> >       if (opts.namespace) {<br>
>> >               jail_process.pid = clone(spawn_jail,<br>
>> >                       child_stack + STACK_SIZE,<br>
>> > -                     CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS |<br>
> CLONE_NEWIPC | SIGCHLD, argv);<br>
>> > +                     CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS |<br>
> CLONE_NEWIPC | SIGCHLD, NULL);<br>
>> >       } else {<br>
>> >               jail_process.pid = fork();<br>
>> >       }<br>
>> ><br>
><br>
</div></div></blockquote></div><br></div></div>