cuserid: support invocation with a null pointer argument
[musl.git] / src / legacy / cuserid.c
blobfd7832e41fdf15509a80583e8f7bb10473e53356
1 #define _GNU_SOURCE
2 #include <pwd.h>
3 #include <stdio.h>
4 #include <unistd.h>
6 char *cuserid(char *buf)
8 static char usridbuf[L_cuserid];
9 struct passwd pw, *ppw;
10 long pwb[256];
11 if (getpwuid_r(geteuid(), &pw, (void *)pwb, sizeof pwb, &ppw))
12 return 0;
13 if (!buf) buf = usridbuf;
14 snprintf(buf, L_cuserid, "%s", pw.pw_name);
15 return buf;