su: Segmentation Fault on unknown numerical uids

e.g.

su 2999,2999,2999 echo hello
Segmentation Fault

return from getpwuid is NULL. KISS we opt to unset LOGNAME and USER

Change-Id: I7e7eddacfd6857f83482727eb5ec5c51b9170039
diff --git a/su/su.c b/su/su.c
index d932c1b..ea61f93 100644
--- a/su/su.c
+++ b/su/su.c
@@ -122,8 +122,13 @@
     setenv("PATH", _PATH_DEFPATH, 1);
     unsetenv("IFS");
     struct passwd* pw = getpwuid(uid);
-    setenv("LOGNAME", pw->pw_name, 1);
-    setenv("USER", pw->pw_name, 1);
+    if (pw) {
+        setenv("LOGNAME", pw->pw_name, 1);
+        setenv("USER", pw->pw_name, 1);
+    } else {
+        unsetenv("LOGNAME");
+        unsetenv("USER");
+    }
 
     // Set up the arguments for exec.
     char* exec_args[argc + 1];  // Having too much space is fine.