crypto/async/async.c:39: error: NULL_DEREFERENCE
  pointer `null` is dereferenced by call to `ossl_init_thread_start()` at line 39, column 10.
Showing all 2 steps of the trace


crypto/async/async.c:35:1: start of procedure async_ctx_new()
33.   static void async_delete_thread_state(void *arg);
34.   
35. > static async_ctx *async_ctx_new(void)
36.   {
37.       async_ctx *nctx;

crypto/async/async.c:39:10: 
37.       async_ctx *nctx;
38.   
39. >     if (!ossl_init_thread_start(NULL, async_delete_thread_state))
40.           return NULL;
41.   

static async_ctx *async_ctx_new(void)
{
    async_ctx *nctx;
    if (!ossl_init_thread_start(NULL, async_delete_thread_state))
        return NULL;
    nctx = OPENSSL_malloc(sizeof(*nctx));
    if (nctx == NULL) {
        ASYNCerr(ASYNC_F_ASYNC_CTX_NEW, ERR_R_MALLOC_FAILURE);
        goto err;
    }
    async_fibre_init_dispatcher(&nctx->dispatcher);
    nctx->currjob = NULL;
    nctx->blocked = 0;
    if (!CRYPTO_THREAD_set_local(&ctxkey, nctx))
        goto err;
    return nctx;
err:
    OPENSSL_free(nctx);
    return NULL;
}
['static async_ctx *async_ctx_new(void)\n{\n    async_ctx *nctx;\n    if (!ossl_init_thread_start(NULL, async_delete_thread_state))\n        return NULL;\n    nctx = OPENSSL_malloc(sizeof(*nctx));\n    if (nctx == NULL) {\n        ASYNCerr(ASYNC_F_ASYNC_CTX_NEW, ERR_R_MALLOC_FAILURE);\n        goto err;\n    }\n    async_fibre_init_dispatcher(&nctx->dispatcher);\n    nctx->currjob = NULL;\n    nctx->blocked = 0;\n    if (!CRYPTO_THREAD_set_local(&ctxkey, nctx))\n        goto err;\n    return nctx;\nerr:\n    OPENSSL_free(nctx);\n    return NULL;\n}']