diff options
author | Sören Tempel <soeren+git@soeren-tempel.net> | 2020-01-29 12:20:07 +0100 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2021-02-13 13:40:22 -0500 |
commit | ef137da6428c342baabd3bcf9b5e91f75acefa64 (patch) | |
tree | a842757ed096938924aff74be9eaf50fcbc2ac2d /src | |
parent | e5d2823631bbfebacf48e1a34ed28f28d7cb2570 (diff) | |
download | musl-ef137da6428c342baabd3bcf9b5e91f75acefa64.tar.gz musl-ef137da6428c342baabd3bcf9b5e91f75acefa64.tar.xz musl-ef137da6428c342baabd3bcf9b5e91f75acefa64.zip |
cuserid: support invocation with a null pointer argument
this function was removed from the standard in 2001 but appeared in SUSv2 with an obligation to support calls with a null pointer argument, using a static buffer.
Diffstat (limited to 'src')
-rw-r--r-- | src/legacy/cuserid.c | 2 |
1 files changed, 2 insertions, 0 deletions
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; } |