|
Message-ID: <20181226122917.GD21289@port70.net> Date: Wed, 26 Dec 2018 13:29:17 +0100 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Cc: Philippe Grégoire <pg@...egoire.xyz> Subject: Re: getspnam: errno=ENOENT for absent user * Philippe Grégoire <pg@...egoire.xyz> [2018-12-25 17:07:14 -0500]: > I'm working with saltstack on Alpine Linux and am getting trouble > managing users. I tracked the problem down to musl and the fact > that getspnam sets errno to ENOENT when a user is missing. This > behavior differs from glibc which leaves errno to 0 and makes > the user relies on the return value; when the name is missing. > > Semantically, ENOENT makes sense, but this is breaking compatibility > with other softwares, at the moment. I'll send a patch over to > saltstack so that current systems are supported, but believe it > should be fixed here too for future compatibility. What do you think? based on http://pubs.opengroup.org/onlinepubs/9699919799/functions/getpwnam.html "If the requested entry was not found, errno shall not be changed." this should be fixed in musl. > > Please, Cc me for reply as I'm not subscribed. > > > Program to demonstrate the issue: > > #include <errno.h> > #include <shadow.h> > #include <stdio.h> > int main(void) > { > errno = 0; > void* r = getspnam("enoent); > perror("getspnam"); > printf("%p\n", r); > } > > On Debian: > getspnam: Success > (nil) > > On Alpine: > getspnam: No such file or directory > 0
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.