|
Message-Id: <20200129112007.17575-1-soeren+git@soeren-tempel.net> Date: Wed, 29 Jan 2020 12:20:07 +0100 From: Sören Tempel <soeren+git@...ren-tempel.net> To: musl@...ts.openwall.com Subject: [PATCH v2] cuserid: support invocation with a NULL pointer argument I did not manage to find a copy of IEEE 1003.1-1988 (the last POSIX version where cuserid was last standardized) the Single UNIX specification version 2 does state the following though [1]: If s is a null pointer, this representation is generated in an area that may be static (and thus overwritten by subsequent calls to cuserid()), the address of which is returned. Even though this a legacy function it would therefore be nice for musl to support usage with a NULL pointer. I ran into this on Alpine Linux when using cdparanoia [2] which uses cuserid like this and therefore caused a crash on my system. [1]: https://pubs.opengroup.org/onlinepubs/7908799/xsh/cuserid.html [2]: https://xiph.org/paranoia/index.html --- src/legacy/cuserid.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/legacy/cuserid.c b/src/legacy/cuserid.c index 4e78798d..fd7832e4 100644 --- a/src/legacy/cuserid.c +++ b/src/legacy/cuserid.c @@ -5,10 +5,12 @@ char *cuserid(char *buf) { + static char usridbuf[L_cuserid]; struct passwd pw, *ppw; long pwb[256]; if (getpwuid_r(geteuid(), &pw, (void *)pwb, sizeof pwb, &ppw)) return 0; + if (!buf) buf = usridbuf; snprintf(buf, L_cuserid, "%s", pw.pw_name); return buf; }
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.