crypto/async/async.c:206: error: NULL_DEREFERENCE
  pointer `ctx` last assigned on line 202 could be null and is dereferenced at line 206, column 15.
Showing all 8 steps of the trace


crypto/async/async.c:199:1: start of procedure async_start_func()
197.   }
198.   
199. > void async_start_func(void)
200.   {
201.       ASYNC_JOB *job;

crypto/async/async.c:202:5: 
200.   {
201.       ASYNC_JOB *job;
202. >     async_ctx *ctx = async_get_ctx();
203.   
204.       while (1) {

crypto/async/async.c:98:1: start of procedure async_get_ctx()
  96.   }
  97.   
  98. > static async_ctx *async_get_ctx(void)
  99.   {
  100.       if (!OPENSSL_init_crypto(OPENSSL_INIT_ASYNC, NULL))

crypto/async/async.c:100:10: Taking true branch
  98.   static async_ctx *async_get_ctx(void)
  99.   {
  100.       if (!OPENSSL_init_crypto(OPENSSL_INIT_ASYNC, NULL))
                  ^
  101.           return NULL;
  102.       return async_arch_get_ctx();

crypto/async/async.c:101:9: 
  99.   {
  100.       if (!OPENSSL_init_crypto(OPENSSL_INIT_ASYNC, NULL))
  101. >         return NULL;
  102.       return async_arch_get_ctx();
  103.   }

crypto/async/async.c:103:1: return from a call to async_get_ctx
  101.           return NULL;
  102.       return async_arch_get_ctx();
  103. > }
  104.   
  105.   static int async_ctx_free(void)

crypto/async/async.c:204:12: Loop condition is true. Entering loop body
202.       async_ctx *ctx = async_get_ctx();
203.   
204.       while (1) {
                  ^
205.           /* Run the job */
206.           job = ctx->currjob;

crypto/async/async.c:206:9: 
204.       while (1) {
205.           /* Run the job */
206. >         job = ctx->currjob;
207.           job->ret = job->func(job->funcargs);
208.   
