crypto/rand/drbg_rand.c:421: error: NULL_DEREFERENCE
  pointer `dctx` last assigned on line 418 could be null and is dereferenced at line 421, column 30.
Showing all 13 steps of the trace


crypto/rand/drbg_rand.c:416:1: start of procedure drbg_status()
414.   }
415.   
416. > static int drbg_status(void)
417.   {
418.       DRBG_CTX *dctx = RAND_DRBG_get_default();

crypto/rand/drbg_rand.c:418:5: 
416.   static int drbg_status(void)
417.   {
418. >     DRBG_CTX *dctx = RAND_DRBG_get_default();
419.       int ret;
420.   

crypto/rand/drbg_rand.c:384:1: start of procedure RAND_DRBG_get_default()
  382.    */
  383.   
  384. > DRBG_CTX *RAND_DRBG_get_default(void)
  385.   {
  386.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))

crypto/rand/drbg_rand.c:386:10: 
  384.   DRBG_CTX *RAND_DRBG_get_default(void)
  385.   {
  386. >     if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
  387.           return NULL;
  388.       return &ossl_drbg;

crypto/threads_pthread.c:105:1: start of procedure CRYPTO_THREAD_run_once()
    103.   }
    104.   
    105. > int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
    106.   {
    107.       if (pthread_once(once, init) != 0)

crypto/threads_pthread.c:107:9: Taking true branch
    105.   int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
    106.   {
    107.       if (pthread_once(once, init) != 0)
                   ^
    108.           return 0;
    109.   

crypto/threads_pthread.c:108:9: 
    106.   {
    107.       if (pthread_once(once, init) != 0)
    108. >         return 0;
    109.   
    110.       return 1;

crypto/threads_pthread.c:111:1: return from a call to CRYPTO_THREAD_run_once
    109.   
    110.       return 1;
    111. > }
    112.   
    113.   int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *))

crypto/rand/drbg_rand.c:386:10: Condition is false
  384.   DRBG_CTX *RAND_DRBG_get_default(void)
  385.   {
  386.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
                  ^
  387.           return NULL;
  388.       return &ossl_drbg;

crypto/rand/drbg_rand.c:386:10: Taking true branch
  384.   DRBG_CTX *RAND_DRBG_get_default(void)
  385.   {
  386.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
                  ^
  387.           return NULL;
  388.       return &ossl_drbg;

crypto/rand/drbg_rand.c:387:9: 
  385.   {
  386.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
  387. >         return NULL;
  388.       return &ossl_drbg;
  389.   }

crypto/rand/drbg_rand.c:389:1: return from a call to RAND_DRBG_get_default
  387.           return NULL;
  388.       return &ossl_drbg;
  389. > }
  390.   
  391.   static int drbg_bytes(unsigned char *out, int count)

crypto/rand/drbg_rand.c:421:5: 
419.       int ret;
420.   
421. >     CRYPTO_THREAD_write_lock(dctx->lock);
422.       ret = dctx->status == DRBG_STATUS_READY ? 1 : 0;
423.       CRYPTO_THREAD_unlock(dctx->lock);
