On Tue, 18 Feb 2014, Ingo Schwarze wrote:
> > Index: gen/getpwent.c
> > ===================================================================
> > RCS file: /cvs/src/lib/libc/gen/getpwent.c,v
> > retrieving revision 1.48
> > diff -u -p -r1.48 getpwent.c
> > --- gen/getpwent.c  15 Nov 2013 22:32:55 -0000      1.48
> > +++ gen/getpwent.c  6 Feb 2014 00:15:46 -0000
> > @@ -672,8 +672,11 @@ _pwhashbyname(const char *name, char *bu
> >     int r;
> >  
> >     len = strlen(name);
> > -   if (len > _PW_NAME_LEN)
> > +   if (len > _PW_NAME_LEN) {
> > +           /* can't be present, so just treat as "no match" */
> > +           errno = 0;
> >             return (NULL);
> > +   }
> 
> That code is correct, your change makes it incorrect.

If that change is left out then this change:


> >     if (pwretp)
> >             *pwretp = pwret;
> >     _THREAD_PRIVATE_MUTEX_UNLOCK(pw);
> > -   return (pwret ? 0 : 1);
> > +   return (pwret ? 0 : errno);
> >  }

...cannot possibly be correct.

Reply via email to