@@ -631,7 +631,7 @@ InterpreterObject *newInterpreterObject(const char *name)
631
631
632
632
pwent = getpwuid (geteuid ());
633
633
634
- if (getenv ("USER" )) {
634
+ if (pwent && getenv ("USER" )) {
635
635
#if PY_MAJOR_VERSION >= 3
636
636
key = PyUnicode_FromString ("USER" );
637
637
value = PyUnicode_Decode (pwent -> pw_name ,
@@ -649,7 +649,7 @@ InterpreterObject *newInterpreterObject(const char *name)
649
649
Py_DECREF (value );
650
650
}
651
651
652
- if (getenv ("USERNAME" )) {
652
+ if (pwent && getenv ("USERNAME" )) {
653
653
#if PY_MAJOR_VERSION >= 3
654
654
key = PyUnicode_FromString ("USERNAME" );
655
655
value = PyUnicode_Decode (pwent -> pw_name ,
@@ -667,7 +667,7 @@ InterpreterObject *newInterpreterObject(const char *name)
667
667
Py_DECREF (value );
668
668
}
669
669
670
- if (getenv ("LOGNAME" )) {
670
+ if (pwent && getenv ("LOGNAME" )) {
671
671
#if PY_MAJOR_VERSION >= 3
672
672
key = PyUnicode_FromString ("LOGNAME" );
673
673
value = PyUnicode_Decode (pwent -> pw_name ,
@@ -718,20 +718,24 @@ InterpreterObject *newInterpreterObject(const char *name)
718
718
struct passwd * pwent ;
719
719
720
720
pwent = getpwuid (geteuid ());
721
+
722
+ if (pwent ) {
721
723
#if PY_MAJOR_VERSION >= 3
722
- key = PyUnicode_FromString ("HOME" );
723
- value = PyUnicode_Decode (pwent -> pw_dir , strlen (pwent -> pw_dir ),
724
- Py_FileSystemDefaultEncoding ,
725
- "surrogateescape" );
724
+ key = PyUnicode_FromString ("HOME" );
725
+ value = PyUnicode_Decode (pwent -> pw_dir ,
726
+ strlen (pwent -> pw_dir ),
727
+ Py_FileSystemDefaultEncoding ,
728
+ "surrogateescape" );
726
729
#else
727
- key = PyString_FromString ("HOME" );
728
- value = PyString_FromString (pwent -> pw_dir );
730
+ key = PyString_FromString ("HOME" );
731
+ value = PyString_FromString (pwent -> pw_dir );
729
732
#endif
730
733
731
- PyObject_SetItem (object , key , value );
734
+ PyObject_SetItem (object , key , value );
732
735
733
- Py_DECREF (key );
734
- Py_DECREF (value );
736
+ Py_DECREF (key );
737
+ Py_DECREF (value );
738
+ }
735
739
}
736
740
737
741
Py_DECREF (module );
0 commit comments