On Tue, 2023-03-28 at 11:22 +0200, Omar Polo wrote:
> On 2023/03/28 17:02:18 +0800, lux <l...@shellcodes.org> wrote:
> > On Mon, 2023-03-27 at 18:58 -0600, Todd C.Miller wrote:
> > > 
> > > > -                       _exit(1);
> > > > -               if (path == NULL)
> > > >                         _exit(1);
> > > >  
> > 
> > Hi, `pipeio' looks like a common function, so maby called in others
> > code, checking the path is NULL is a safe check, to prevent writing
> > wrong code, I think the condition that path is NULL should not be
> > removed. 
> 
> pipeio() is a common _internal_ function.  There are requirements
> that
> callers need to fulfill when calling other functions.  Otherwise
> you'd
> have to check also that argv is non-NULL and that it is NULL
> terminated, that len is non-negative, that text is a valid pointer if
> len is positive, that outbp is non-NULL and a valid pointer etc.
> Quite a few checks for a function only called twice and always with
> proper parameters :)
> 
> % grep 'pipeio(' *.c
> buffer.c:       ret = pipeio(DIFFTOOL, argv, text, len, bp);
> region.c:       ret = pipeio(shellp, argv, text, len, bp);
> region.c:pipeio(const char* const path, char* const argv[],
> 
> Furthermore, path is only looked at in the child process after
> fork(),
> even for the paranoids it won't cause issues in the editor itself.
> 
> So I don't think we need to be pedantic and check the path there
> given
> that 1. it is always called with proper arguments and 2. there's no
> way it could do something useful with a NULL first argument.
> 
> I should have added a note about this in the commit message.
> apologies.
> 

Okay, I understand now, thank you :-)

Reply via email to