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


crypto/rand/drbg_rand.c:420:1: start of procedure drbg_status()
418.   }
419.   
420. > static int drbg_status(void)
421.   {
422.       DRBG_CTX *dctx = RAND_DRBG_get_default();

crypto/rand/drbg_rand.c:422:5: 
420.   static int drbg_status(void)
421.   {
422. >     DRBG_CTX *dctx = RAND_DRBG_get_default();
423.       int ret;
424.   

crypto/rand/drbg_rand.c:388:1: start of procedure RAND_DRBG_get_default()
  386.    */
  387.   
  388. > DRBG_CTX *RAND_DRBG_get_default(void)
  389.   {
  390.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))

crypto/rand/drbg_rand.c:390:10: 
  388.   DRBG_CTX *RAND_DRBG_get_default(void)
  389.   {
  390. >     if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
  391.           return NULL;
  392.       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:390:10: Condition is false
  388.   DRBG_CTX *RAND_DRBG_get_default(void)
  389.   {
  390.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
                  ^
  391.           return NULL;
  392.       return &ossl_drbg;

crypto/rand/drbg_rand.c:390:10: Taking true branch
  388.   DRBG_CTX *RAND_DRBG_get_default(void)
  389.   {
  390.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
                  ^
  391.           return NULL;
  392.       return &ossl_drbg;

crypto/rand/drbg_rand.c:391:9: 
  389.   {
  390.       if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))
  391. >         return NULL;
  392.       return &ossl_drbg;
  393.   }

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

crypto/rand/drbg_rand.c:425:5: 
423.       int ret;
424.   
425. >     CRYPTO_THREAD_write_lock(dctx->lock);
426.       ret = dctx->status == DRBG_STATUS_READY ? 1 : 0;
427.       CRYPTO_THREAD_unlock(dctx->lock);
