INNER CODE UNIT · C
msg_len
jedisct1/libsodium-php · libsodium.c:4103
msg_len = c_len - crypto_secretstream_xchacha20poly1305_ABYTES;
msg = zend_string_checked_alloc((size_t) msg_len, 0);
if (crypto_secretstream_xchacha20poly1305_pull
((void *) state, (unsigned char *) ZSTR_VAL(msg), &msg_real_len, &tag,
c, (unsigned long long) c_len, ad, (unsigned long long) ad_len) != 0) {
zend_string_free(msg);
RETURN_FALSE;
}
if (msg_real_len >= SIZE_MAX || msg_real_len > msg_len) {
zend_string_free(msg);
zend_throw_exception(sodium_exception_ce, "arithmetic overflow", 0);
return;
}
PHP_SODIUM_ZSTR_TRUNCATE(msg, (size_t) msg_real_len);
array_init(return_value);
add_next_index_str(return_value, msg);
add_next_index_long(return_value, (long) tag);
}