if (strncpy_s(passwd + MD5_MAGIC_LEN, MD5_HASH_MAX_LEN - MD5_MAGIC_LEN, sp, sl + 1) != 0) {
goto _destroyCtx1;
}
+ passwd[MD5_MAGIC_LEN + sl] = '\0';
strcat_s(passwd, MD5_HASH_MAX_LEN, "$");
#else
/* VC6 version doesn't have strcat_s or strncpy_s */
--- /dev/null
+--TEST--\r
+Bug #50052 (Different Hashes on Windows and Linux on wrong Salt size)\r
+--FILE--\r
+<?php\r
+$salt = b'$1$f+uslYF01$';\r
+$password = b'test';\r
+echo $salt . "\n";\r
+echo crypt($password,$salt) . "\n";\r
+?>\r
+--EXPECT--\r
+$1$f+uslYF01$\r
+$1$f+uslYF0$orVloNmKSLvOeswusE0bY.\r