summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2006-11-30 15:59:53 +0000
committerIlia Alshanetsky <iliaa@php.net>2006-11-30 15:59:53 +0000
commit891bd7888f0285bafa6328a0bfb84bca95625886 (patch)
treed11742bb73bab3ec5baf76836d8c3c6cdff9d7b0
parent20b92bf4ccb82edd5487f70d2736c65deb3b22f5 (diff)
downloadphp-git-891bd7888f0285bafa6328a0bfb84bca95625886.tar.gz
Use reantrant crypt_r() whenever possible.
-rw-r--r--ext/standard/crypt.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c
index b147f88b0f..9b06de8070 100644
--- a/ext/standard/crypt.c
+++ b/ext/standard/crypt.c
@@ -145,8 +145,15 @@ PHP_FUNCTION(crypt)
salt[2] = '\0';
#endif
}
-
- RETVAL_STRING(crypt(str, salt), 1);
+#ifdef HAVE_CRYPT_R
+ {
+ struct crypt_data buffer;
+ memset(&buffer, 0, sizeof(buffer));
+ RETURN_STRING(crypt_r(str, salt, &buffer));
+ }
+#else
+ RETURN_STRING(crypt(str, salt), 1);
+#endif
}
/* }}} */
#endif