aboutsummaryrefslogtreecommitdiffstats
path: root/main/php/fix-crypt.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2016-03-25 07:44:01 +0000
committerTimo Teräs <timo.teras@iki.fi>2016-03-25 08:08:42 +0000
commit13863cc1f5f194a380e822e4dd6a6f548864f6b0 (patch)
tree02b8c097b4eb0df608ca4cef66857cdc509d0b96 /main/php/fix-crypt.patch
parent964fda4bc0702462cde06433ab1e0de517f1531a (diff)
downloadaports-13863cc1f5f194a380e822e4dd6a6f548864f6b0.tar.bz2
aports-13863cc1f5f194a380e822e4dd6a6f548864f6b0.tar.xz
main/php: fix sha256/512 passwords
ref #5141
Diffstat (limited to 'main/php/fix-crypt.patch')
-rw-r--r--main/php/fix-crypt.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/main/php/fix-crypt.patch b/main/php/fix-crypt.patch
new file mode 100644
index 0000000000..2b6b1d3011
--- /dev/null
+++ b/main/php/fix-crypt.patch
@@ -0,0 +1,48 @@
+https://bugs.php.net/bug.php?id=67512
+
+--- php-5.6.19.orig/ext/standard/crypt.c
++++ php-5.6.19/ext/standard/crypt.c
+@@ -58,6 +58,7 @@
+ #include "php_lcg.h"
+ #include "php_crypt.h"
+ #include "php_rand.h"
++#include "php_config.h"
+
+ /* The capabilities of the crypt() function is determined by the test programs
+ * run by configure from aclocal.m4. They will set PHP_STD_DES_CRYPT,
+@@ -227,18 +228,20 @@
+ }
+ }
+ #else
+-
+-# if defined(HAVE_CRYPT_R) && (defined(_REENTRANT) || defined(_THREAD_SAFE))
+ {
+-# if defined(CRYPT_R_STRUCT_CRYPT_DATA)
++# if defined(HAVE_CRYPT_R)
++# if defined(CRYPT_R_STRUCT_CRYPT_DATA)
+ struct crypt_data buffer;
+ memset(&buffer, 0, sizeof(buffer));
+-# elif defined(CRYPT_R_CRYPTD)
++# elif defined(CRYPT_R_CRYPTD)
+ CRYPTD buffer;
+-# else
+-# error Data struct used by crypt_r() is unknown. Please report.
+-# endif
++# else
++# error Data struct used by crypt_r() is unknown. Please report.
++# endif
+ crypt_res = crypt_r(password, salt, &buffer);
++# else
++ crypt_res = crypt(passwrd, salt);
++#endif
+ if (!crypt_res || (salt[0] == '*' && salt[1] == '0')) {
+ return FAILURE;
+ } else {
+@@ -246,7 +249,6 @@
+ return SUCCESS;
+ }
+ }
+-# endif
+ #endif
+ }
+ /* }}} */