INNER CODE UNIT · C
bin_len
jedisct1/libsodium-php · libsodium.c:3093
bin_len = hex_len / 2;
bin = zend_string_checked_alloc(bin_len, 0);
if (sodium_hex2bin((unsigned char *) ZSTR_VAL(bin), bin_len, hex, hex_len,
ignore, &bin_real_len, &end) != 0 ||
end != hex + hex_len) {
zend_string_free(bin);
zend_throw_exception(sodium_exception_ce, "invalid hex string", 0);
return;
}
if (bin_real_len >= SIZE_MAX || bin_real_len > bin_len) {
zend_string_free(bin);
zend_throw_exception(sodium_exception_ce, "arithmetic overflow", 0);
return;
}
PHP_SODIUM_ZSTR_TRUNCATE(bin, (size_t) bin_real_len);
RETURN_STR(bin);
}