]> granicus.if.org Git - python/commitdiff
bpo-32635: Fix a segfault when importing the crypt module with libxcrypt. (GH-5284...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 24 Jan 2018 09:51:39 +0000 (01:51 -0800)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 24 Jan 2018 09:51:39 +0000 (10:51 +0100)
glibc is deprecating libcrypt in favor of libxcrypt, however python assumes
that crypt.h will always be included. This change makes the header inclusion
explicit when libxcrypt is present on the system.
(cherry picked from commit e768c86ef442ef89004089a8a34ce5909ffb90f2)

Include/Python.h
Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst [new file with mode: 0644]
configure
configure.ac
pyconfig.h.in

index 775412b8c4ef188aa1984752c80b58e4465ddd2b..a9327b02c81f0926ee83c89ebac59d4ff9b1015d 100644 (file)
@@ -43,6 +43,9 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
 
 /* For size_t? */
 #ifdef HAVE_STDDEF_H
diff --git a/Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst b/Misc/NEWS.d/next/Build/2018-01-23-15-33-40.bpo-32635.qHwIZy.rst
new file mode 100644 (file)
index 0000000..d411890
--- /dev/null
@@ -0,0 +1,2 @@
+Fix segfault of the crypt module when libxcrypt is provided instead of
+libcrypt at the system.
index 609b5c04fd2a6c0f5ee9e31359f73608f1a76704..34773076f567cf5f92aaf7923c55dfd63d2e14db 100755 (executable)
--- a/configure
+++ b/configure
@@ -7035,7 +7035,7 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
-for ac_header in asm/types.h conio.h direct.h dlfcn.h errno.h \
+for ac_header in asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
 fcntl.h grp.h \
 ieeefp.h io.h langinfo.h libintl.h poll.h process.h pthread.h \
 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
index 7243de205bee53a2f9be36149600ea8a4bdfd55b..c64534021620911dbdc18a8a752446107f52f010 100644 (file)
@@ -1690,7 +1690,7 @@ dnl AC_MSG_RESULT($cpp_type)
 
 # checks for header files
 AC_HEADER_STDC
-AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
+AC_CHECK_HEADERS(asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
 fcntl.h grp.h \
 ieeefp.h io.h langinfo.h libintl.h poll.h process.h pthread.h \
 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
index 22dc2dba6d6779f1fc14dd48199c133963fb26be..11c4a66873c11030dcf8142a79b3585eb4143ec9 100644 (file)
 /* Define to 1 if you have the `copysign' function. */
 #undef HAVE_COPYSIGN
 
+/* Define to 1 if you have the <crypt.h> header file. */
+#undef HAVE_CRYPT_H
+
 /* Define to 1 if you have the `ctermid' function. */
 #undef HAVE_CTERMID