Fingers crossed I didn't break the build.
size_t out_len = 32;
size_t encoded_len;
int status = 0;
+ char *out;
+ zend_string *encoded;
encoded_len = argon2_encodedlen(
time_cost,
out_len
);
- zend_string *out = zend_string_alloc(out_len, 0);
- zend_string *encoded = zend_string_alloc(encoded_len, 0);
+ out = emalloc(out_len + 1);
+ encoded = zend_string_alloc(encoded_len, 0);
status = argon2_hash(
time_cost,
password_len,
salt,
salt_len,
- out->val,
+ out,
out_len,
- encoded->val,
+ ZSTR_VAL(encoded),
encoded_len,
type,
ARGON2_VERSION_NUMBER
efree(salt);
if (status != ARGON2_OK) {
- efree(encoded);
+ zend_string_free(encoded);
php_error_docref(NULL, E_WARNING, argon2_error_message(status));
RETURN_FALSE;
}