[OpenWrt-Devel] [PATCH procd 2/4] ujail: remove useless arg in clone call

Etienne Champetier champetier.etienne at gmail.com
Mon Nov 23 03:28:31 EST 2015


2015-11-23 9:11 GMT+01:00 John Crispin <blogic at openwrt.org>:

>
>
> On 23/11/2015 09:09, Etienne Champetier wrote:
> > Hi,
> >
> > Le 23 nov. 2015 08:18, "John Crispin" <blogic at openwrt.org
> > <mailto:blogic at openwrt.org>> a écrit :
> >>
> >>
> >>
> >> On 23/11/2015 01:39, Etienne CHAMPETIER wrote:
> >> > spawn_jail(void) produce a compilation error,
> >> > so we use spawn_jail()
> >> >
> >> > Signed-off-by: Etienne CHAMPETIER <champetier.etienne at gmail.com
> > <mailto:champetier.etienne at gmail.com>>
> >> > ---
> >> >  jail/jail.c | 4 ++--
> >> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >> >
> >> > diff --git a/jail/jail.c b/jail/jail.c
> >> > index 56dc9ca..08babde 100644
> >> > --- a/jail/jail.c
> >> > +++ b/jail/jail.c
> >> > @@ -272,7 +272,7 @@ static int exec_jail()
> >> >       exit(EXIT_FAILURE);
> >> >  }
> >> >
> >> > -static int spawn_jail(void *arg)
> >> > +static int spawn_jail()
> >>
> >> Hi,
> >>
> >> this is still wrong. also you might want to write a sentence why it is
> >> useless.
> >>
> >
> > Well, we don't use it, and passing arg to not use it really doesn't
> > improve readability.
> >
> > I know it break your code style, but it seems we can't have both here :(
> >
> > Etienne
> >
> >>         John
>
>
> i wont merge it until there is a (void). it is valid code. try it and
> you will see that i am right.
>
> sorry my commit message is bad

try to put NULL at the end of the clone() call, and try with spawn_jail()
and
spawn_jail(void), and you will see

i know that spawn_jail(void) is valid code, but then the clone call refuses
to compile

*/home/etienne/procd/jail/jail.c: In function ‘main’:*
> */home/etienne/procd/jail/jail.c:381:4: error: passing argument 1 of
> ‘clone’ from incompatible pointer type [-Werror]*
> *    CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWIPC | SIGCHLD,
> NULL);*
> *    ^*
> *In file included from /usr/include/sched.h:41:0,*
> *                 from /home/etienne/procd/jail/jail.c:26:*
> */usr/include/x86_64-linux-gnu/bits/sched.h:81:12: note: expected ‘int
> (*)(void *)’ but argument is of type ‘int (*)(void)’*
> * extern int clone (int (*__fn) (void *__arg), void *__child_stack,*
> *            ^*
> *cc1: all warnings being treated as errors*
> *make[2]: *** [CMakeFiles/ujail.dir/jail/jail.c.o] Error 1*
> *make[1]: *** [CMakeFiles/ujail.dir/all] Error 2*
> *make: *** [all] Error 2*
>





>
> >>
> >> >  {
> >> >       if (opts.name <http://opts.name> && sethostname(opts.name
> > <http://opts.name>, strlen(opts.name <http://opts.name>))) {
> >> >               ERROR("failed to sethostname: %s\n", strerror(errno));
> >> > @@ -424,7 +424,7 @@ int main(int argc, char **argv)
> >> >       if (opts.namespace) {
> >> >               jail_process.pid = clone(spawn_jail,
> >> >                       child_stack + STACK_SIZE,
> >> > -                     CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS |
> > CLONE_NEWIPC | SIGCHLD, argv);
> >> > +                     CLONE_NEWUTS | CLONE_NEWPID | CLONE_NEWNS |
> > CLONE_NEWIPC | SIGCHLD, NULL);
> >> >       } else {
> >> >               jail_process.pid = fork();
> >> >       }
> >> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20151123/ec085729/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list