summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/php_crypt_r.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/standard/php_crypt_r.c b/ext/standard/php_crypt_r.c
index 6efce8b8f3..fffd96a048 100644
--- a/ext/standard/php_crypt_r.c
+++ b/ext/standard/php_crypt_r.c
@@ -204,11 +204,18 @@ char * php_md5_crypt_r(const char *pw, const char *salt, char *out) {
memcpy(passwd, MD5_MAGIC, MD5_MAGIC_LEN);
+#ifdef strncpy_s
if (strncpy_s(passwd + MD5_MAGIC_LEN, MD5_HASH_MAX_LEN - MD5_MAGIC_LEN, sp, sl + 1) != 0) {
goto _destroyCtx1;
}
strcat_s(passwd, MD5_HASH_MAX_LEN, "$");
-
+#else
+ /* VC6 version doesn't have strcat_s or strncpy_s */
+ if (strncpy(passwd + MD5_MAGIC_LEN, sp, sl + 1) != 0) {
+ goto _destroyCtx1;
+ }
+ strcat(passwd, "$");
+#endif
dwHashLen = 16;
/* Fetch the ctx hash value */