Browse Source

fix case where getpwuid() returns null.

This happens in cases where you are running in a docker container
as an unknown UID.
Steve Thielemann 5 years ago
parent
commit
1b199482d0
1 changed files with 7 additions and 2 deletions
  1. 7 2
      ODInEx1.c

+ 7 - 2
ODInEx1.c

@@ -2313,8 +2313,13 @@ malloc_error:
    		 od_control.baud=19200;
       }
       uinfo=getpwuid(getuid());
-      ODStringCopy(od_control.user_handle, uinfo->pw_name,sizeof(od_control.user_handle));
-      ODStringCopy(od_control.user_name, uinfo->pw_gecos,sizeof(od_control.user_name));
+      if (uinfo == NULL) {
+        ODStringCopy(od_control.user_handle, "unknown",sizeof(od_control.user_handle));
+        ODStringCopy(od_control.user_name, "unknown",sizeof(od_control.user_name));
+      } else {
+        ODStringCopy(od_control.user_handle, uinfo->pw_name,sizeof(od_control.user_handle));
+        ODStringCopy(od_control.user_name, uinfo->pw_gecos,sizeof(od_control.user_name));
+      };
    }
 #else
    if(bPromptForUserName)