Explorar o código

fix case where getpwuid() returns null.

This happens in cases where you are running in a docker container
as an unknown UID.
Steve Thielemann %!s(int64=5) %!d(string=hai) anos
pai
achega
1b199482d0
Modificáronse 1 ficheiros con 7 adicións e 2 borrados
  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)