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);
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…