fix error return value for cuserid
[musl] / src / legacy / cuserid.c
index 07866ac..dcaf73d 100644 (file)
@@ -9,12 +9,13 @@ char *cuserid(char *buf)
        static char usridbuf[L_cuserid];
        struct passwd pw, *ppw;
        long pwb[256];
+       if (buf) *buf = 0;
        getpwuid_r(geteuid(), &pw, (void *)pwb, sizeof pwb, &ppw);
        if (!ppw)
-               return 0;
+               return buf;
        size_t len = strnlen(pw.pw_name, L_cuserid);
        if (len == L_cuserid)
-               return 0;
+               return buf;
        if (!buf) buf = usridbuf;
        memcpy(buf, pw.pw_name, len+1);
        return buf;