su: Segmentation Fault on unknown numerical uids

(cherry pick from commit 45948f910c69d354cc3f7e81631445d83ebadc3d)

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.