summaryrefslogtreecommitdiffstats
path: root/Modules/pwdmodule.c
diff options
context:
space:
mode:
authorStefan Krah <skrah@bytereef.org>2016-04-25 23:09:18 (GMT)
committerStefan Krah <skrah@bytereef.org>2016-04-25 23:09:18 (GMT)
commit267b639a2655d283282813219730704a8d2743b7 (patch)
treeb6b35a76827f1f9d6aea1634ebaae2739d136724 /Modules/pwdmodule.c
parent8e1da5823b4dabbc5e60f8ee27411070a37804ef (diff)
downloadcpython-267b639a2655d283282813219730704a8d2743b7.zip
cpython-267b639a2655d283282813219730704a8d2743b7.tar.gz
cpython-267b639a2655d283282813219730704a8d2743b7.tar.bz2
Issue #20306: The pw_gecos and pw_passwd fields are not required by POSIX.
If they aren't present, set them to an empty string.
Diffstat (limited to 'Modules/pwdmodule.c')
-rw-r--r--Modules/pwdmodule.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index 281c30b..c503256 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -75,10 +75,18 @@ mkpwent(struct passwd *p)
#define SETS(i,val) sets(v, i, val)
SETS(setIndex++, p->pw_name);
+#if defined(HAVE_STRUCT_PASSWD_PW_PASSWD)
SETS(setIndex++, p->pw_passwd);
+#else
+ SETS(setIndex++, "");
+#endif
PyStructSequence_SET_ITEM(v, setIndex++, _PyLong_FromUid(p->pw_uid));
PyStructSequence_SET_ITEM(v, setIndex++, _PyLong_FromGid(p->pw_gid));
+#if defined(HAVE_STRUCT_PASSWD_PW_GECOS)
SETS(setIndex++, p->pw_gecos);
+#else
+ SETS(setIndex++, "");
+#endif
SETS(setIndex++, p->pw_dir);
SETS(setIndex++, p->pw_shell);