> On Sun, Dec 13, 2015 at 9:45 PM, Maxim Pugachev <pugachev...@gmail.com> wrote:
> > Hi,
> >
> > In exec_script_makecmds function, when EXEC_HASFD flag was set, but
> > copystr/copyinstr returns an error, we need to set *tmpsap to NULL to
> > terminate a loop (under "fail" label) correctly.

I spent a while straining to see the forest through the trees, but this
makes sense to me. ok mmcc@

Is this allocation chain idiom used elsewhere in sys/kern? Maybe we
could break it out into ~3 functions. The current state of affairs seems
bug-prone.

> > Index: sys/kern/exec_script.c
> > ===================================================================
> > RCS file: /cvs/src/sys/kern/exec_script.c,v
> > retrieving revision 1.36
> > diff -u -p -r1.36 exec_script.c
> > --- sys/kern/exec_script.c      10 Sep 2015 18:10:35 -0000      1.36
> > +++ sys/kern/exec_script.c      13 Dec 2015 18:33:53 -0000
> > @@ -222,8 +222,10 @@ check_shell:
> >  #endif
> >                         error = copyinstr(epp->ep_name, *tmpsap++, 
> > MAXPATHLEN,
> >                             NULL);
> > -               if (error != 0)
> > +               if (error != 0) {
> > +                       *tmpsap = NULL;
> >                         goto fail;
> > +               }
> >         } else
> >                 snprintf(*tmpsap++, MAXPATHLEN, "/dev/fd/%d", epp->ep_fd);
> >         *tmpsap = NULL;
> 

Reply via email to