> > Date: Tue, 18 Feb 2014 17:01:24 +0100 > > From: Ingo Schwarze <[email protected]> > > > > > So: we need to > > > - clear errno in the success and "no match" cases, > > > > This is incorrect and shouldn't be done. > > When no error occurs, errno has to stay as it is. > > Indeed. POSIX explicitly says: > > "No function in this volume of POSIX.1-2008 shall set errno to zero." > > The standard is slightly ambiguous on what getpwnam_r() should do, but > the way I read it, it should not touch errno at all. So it should > save errno at the start of the function, and restore it just before > return.
That is the only sane approach. I would like to see a diff in which at least solves the non-YP cases. The YP cases have other issues in other functions as well, that are somewhat known..
