diff -U3 -r Python-3.4.8-orig/configure Python-3.4.8/configure --- Python-3.4.8-orig/configure 2018-02-13 11:08:48.126741021 +0100 +++ Python-3.4.8/configure 2018-02-13 11:32:32.579790986 +0100 @@ -7006,7 +7006,7 @@ 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 process.h pthread.h \ sched.h shadow.h signal.h stdint.h stropts.h termios.h \ diff -U3 -r Python-3.4.8-orig/configure.ac Python-3.4.8/configure.ac --- Python-3.4.8-orig/configure.ac 2018-02-13 11:08:48.060740742 +0100 +++ Python-3.4.8/configure.ac 2018-02-13 11:09:59.208039082 +0100 @@ -1563,7 +1563,7 @@ # 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 process.h pthread.h \ sched.h shadow.h signal.h stdint.h stropts.h termios.h \ diff -U3 -r Python-3.4.8-orig/Include/Python.h Python-3.4.8/Include/Python.h --- Python-3.4.8-orig/Include/Python.h 2018-02-05 00:40:38.000000000 +0100 +++ Python-3.4.8/Include/Python.h 2018-02-13 11:09:40.689963273 +0100 @@ -35,6 +35,9 @@ #ifdef HAVE_UNISTD_H #include #endif +#ifdef HAVE_CRYPT_H +#include +#endif /* For size_t? */ #ifdef HAVE_STDDEF_H diff -U3 -r Python-3.4.8-orig/Modules/_cryptmodule.c Python-3.4.8/Modules/_cryptmodule.c --- Python-3.4.8-orig/Modules/_cryptmodule.c 2018-02-05 00:40:38.000000000 +0100 +++ Python-3.4.8/Modules/_cryptmodule.c 2018-02-13 12:00:51.636164978 +0100 @@ -69,7 +69,8 @@ { /* On some platforms (AtheOS) crypt returns NULL for an invalid salt. Return None in that case. XXX Maybe raise an exception? */ - return Py_BuildValue("s", crypt(word, salt)); + char *result = crypt(word, salt); + return Py_BuildValue("s", result); }