cuserid: support invocation with a null pointer argument
[musl] / src / legacy / cuserid.c
1 #define _GNU_SOURCE
2 #include <pwd.h>
3 #include <stdio.h>
4 #include <unistd.h>
5
6 char *cuserid(char *buf)
7 {
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;
16 }