test/evp_fetch_prov_test.c:83: error: BUFFER_OVERRUN_L2
  Offset: [0, 399] Size: 100 by call to `test_get_argument`.
Showing all 7 steps of the trace


test/evp_fetch_prov_test.c:82:10: Assignment
80.           goto err;
81.   
82.       for (i = 0; i < test_get_argument_count(); ++i) {
               ^
83.           char *provname = test_get_argument(i);
84.           prov[i] = OSSL_PROVIDER_load(ctx, provname);

test/evp_fetch_prov_test.c:83:26: Call
81.   
82.       for (i = 0; i < test_get_argument_count(); ++i) {
83.           char *provname = test_get_argument(i);
                               ^
84.           prov[i] = OSSL_PROVIDER_load(ctx, provname);
85.           if (!TEST_ptr(prov[i]))

test/testutil/options.c:24:1: <Offset trace>
22.   }
23.   
24. > char *test_get_argument(size_t n)
25.   {
26.       char **argv = opt_rest();

test/testutil/options.c:24:1: Parameter `n`
  22.   }
  23.   
  24. > char *test_get_argument(size_t n)
  25.   {
  26.       char **argv = opt_rest();

test/testutil/options.c:16:1: <Length trace>
14.   
15.   
16. > static int used[100] = { 0 };
17.   
18.   

test/testutil/options.c:16:1: Array declaration
  14.   
  15.   
  16. > static int used[100] = { 0 };
  17.   
  18.   

test/testutil/options.c:31:5: Array access: Offset: [0, 399] Size: 100 by call to `test_get_argument` 
  29.       if ((int)n >= opt_num_rest() || argv == NULL)
  30.           return NULL;
  31.       used[n] = 1;
            ^
  32.       return argv[n];
  33.   }

char *test_get_argument(size_t n)
{
    char **argv = opt_rest();
    OPENSSL_assert(n < sizeof(used));
    if ((int)n >= opt_num_rest() || argv == NULL)
        return NULL;
    used[n] = 1;
    return argv[n];
}
['static int load_providers(OPENSSL_CTX **libctx, OSSL_PROVIDER *prov[])\n{\n    OPENSSL_CTX *ctx;\n    int ret = 0;\n    size_t i;\n    ctx = OPENSSL_CTX_new();\n    if (!TEST_ptr(ctx))\n        goto err;\n    if (test_get_argument_count() > 2)\n        goto err;\n    for (i = 0; i < test_get_argument_count(); ++i) {\n        char *provname = test_get_argument(i);\n        prov[i] = OSSL_PROVIDER_load(ctx, provname);\n        if (!TEST_ptr(prov[i]))\n            goto err;\n    }\n    ret = 1;\n    *libctx = ctx;\nerr:\n    return ret;\n}', 'char *test_get_argument(size_t n)\n{\n    char **argv = opt_rest();\n    OPENSSL_assert(n < sizeof(used));\n    if ((int)n >= opt_num_rest() || argv == NULL)\n        return NULL;\n    used[n] = 1;\n    return argv[n];\n}']