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


crypto/async/async.c:185:1: start of procedure async_start_func()
183.   }
184.   
185. > void async_start_func(void)
186.   {
187.       ASYNC_JOB *job;

crypto/async/async.c:188:5: 
186.   {
187.       ASYNC_JOB *job;
188. >     async_ctx *ctx = async_get_ctx();
189.   
190.       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:190:12: Loop condition is true. Entering loop body
188.       async_ctx *ctx = async_get_ctx();
189.   
190.       while (1) {
                  ^
191.           /* Run the job */
192.           job = ctx->currjob;

crypto/async/async.c:192:9: 
190.       while (1) {
191.           /* Run the job */
192. >         job = ctx->currjob;
193.           job->ret = job->func(job->funcargs);
194.   
