On Mon, Jul 29, 2019 at 04:38:17PM +0200, Florian Weimer wrote:
> > On Mon, Jul 29, 2019 at 11:16:31AM +0200, Florian Weimer wrote:
> > So the test should be:
> >
> > diff --git a/src/elfclassify.c b/src/elfclassify.c
> > index ebd42c1d5..b17d14d45 100644
> > --- a/src/elfclassify.c
> > +++ b/src/elfclassify.c
> > @@ -862,7 +862,7 @@ process_stdin (int *status)
> >          break;
> >        if (ret < 0)
> >          abort ();           /* Cannot happen due to error checks above.  */
> > -      if (delim != '\0' && ret > 0)
> > +      if (delim != '\0' && ret > 0 && buffer[ret - 1] == '\n')
> >          buffer[ret - 1] = '\0';
> >        current_path = buffer;
> >        process_current_path (status);
> 
> Right.  But now I wonder why ret == 0 can ever happen.  Maybe on
> OpenVMS, which doesn't use in-band signaling for line terminators?

I also couldn't create a situation where ret == 0.
But I still included the change because it feels more robust.

Thanks,

Mark

Reply via email to