crypto/err/err.c:716: error: NULL_DEREFERENCE
  pointer `null` is dereferenced by call to `ossl_init_thread_start()` at line 716, column 14.
Showing all 28 steps of the trace


crypto/err/err.c:692:1: start of procedure ERR_get_state()
690.   }
691.   
692. > ERR_STATE *ERR_get_state(void)
693.   {
694.       ERR_STATE *state;

crypto/err/err.c:695:5: 
693.   {
694.       ERR_STATE *state;
695. >     int saveerrno = get_last_sys_error();
696.   
697.       if (!OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL))

crypto/err/err.c:697:10: Taking false branch
695.       int saveerrno = get_last_sys_error();
696.   
697.       if (!OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL))
                ^
698.           return NULL;
699.   

crypto/err/err.c:700:10: 
698.           return NULL;
699.   
700. >     if (!RUN_ONCE(&err_init, err_do_init))
701.           return NULL;
702.   

crypto/threads_pthread.c:111:1: start of procedure CRYPTO_THREAD_run_once()
  109.   }
  110.   
  111. > int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  112.   {
  113.       if (pthread_once(once, init) != 0)

crypto/threads_pthread.c:113:9: Taking false branch
  111.   int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))
  112.   {
  113.       if (pthread_once(once, init) != 0)
                 ^
  114.           return 0;
  115.   

crypto/threads_pthread.c:116:5: 
  114.           return 0;
  115.   
  116. >     return 1;
  117.   }
  118.   

crypto/threads_pthread.c:117:1: return from a call to CRYPTO_THREAD_run_once
  115.   
  116.       return 1;
  117. > }
  118.   
  119.   int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *))

crypto/err/err.c:700:10: Condition is true
698.           return NULL;
699.   
700.       if (!RUN_ONCE(&err_init, err_do_init))
                ^
701.           return NULL;
702.   

crypto/err/err.c:700:10: Taking false branch
698.           return NULL;
699.   
700.       if (!RUN_ONCE(&err_init, err_do_init))
                ^
701.           return NULL;
702.   

crypto/err/err.c:703:5: 
701.           return NULL;
702.   
703. >     state = CRYPTO_THREAD_get_local(&err_thread_local);
704.       if (state == (ERR_STATE*)-1)
705.           return NULL;

crypto/threads_pthread.c:127:1: start of procedure CRYPTO_THREAD_get_local()
  125.   }
  126.   
  127. > void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  128.   {
  129.       return pthread_getspecific(*key);

crypto/threads_pthread.c:129:5: Skipping pthread_getspecific(): method has no implementation
  127.   void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key)
  128.   {
  129.       return pthread_getspecific(*key);
             ^
  130.   }
  131.   

crypto/threads_pthread.c:130:1: return from a call to CRYPTO_THREAD_get_local
  128.   {
  129.       return pthread_getspecific(*key);
  130. > }
  131.   
  132.   int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)

crypto/err/err.c:704:9: Taking false branch
702.   
703.       state = CRYPTO_THREAD_get_local(&err_thread_local);
704.       if (state == (ERR_STATE*)-1)
               ^
705.           return NULL;
706.   

crypto/err/err.c:707:9: Taking true branch
705.           return NULL;
706.   
707.       if (state == NULL) {
               ^
708.           if (!CRYPTO_THREAD_set_local(&err_thread_local, (ERR_STATE*)-1))
709.               return NULL;

crypto/err/err.c:708:14: 
706.   
707.       if (state == NULL) {
708. >         if (!CRYPTO_THREAD_set_local(&err_thread_local, (ERR_STATE*)-1))
709.               return NULL;
710.   

crypto/threads_pthread.c:132:1: start of procedure CRYPTO_THREAD_set_local()
  130.   }
  131.   
  132. > int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  133.   {
  134.       if (pthread_setspecific(*key, val) != 0)

crypto/threads_pthread.c:134:9: Taking false branch
  132.   int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val)
  133.   {
  134.       if (pthread_setspecific(*key, val) != 0)
                 ^
  135.           return 0;
  136.   

crypto/threads_pthread.c:137:5: 
  135.           return 0;
  136.   
  137. >     return 1;
  138.   }
  139.   

crypto/threads_pthread.c:138:1: return from a call to CRYPTO_THREAD_set_local
  136.   
  137.       return 1;
  138. > }
  139.   
  140.   int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key)

crypto/err/err.c:708:14: Taking false branch
706.   
707.       if (state == NULL) {
708.           if (!CRYPTO_THREAD_set_local(&err_thread_local, (ERR_STATE*)-1))
                    ^
709.               return NULL;
710.   

crypto/err/err.c:711:13: 
709.               return NULL;
710.   
711. >         if ((state = OPENSSL_zalloc(sizeof(*state))) == NULL) {
712.               CRYPTO_THREAD_set_local(&err_thread_local, NULL);
713.               return NULL;

providers/fips/fipsprov.c:460:1: start of procedure CRYPTO_zalloc()
  458.   }
  459.   
  460. > void *CRYPTO_zalloc(size_t num, const char *file, int line)
  461.   {
  462.       return c_CRYPTO_zalloc(num, file, line);

providers/fips/fipsprov.c:462:5: Skipping __function_pointer__(): unresolved function pointer
  460.   void *CRYPTO_zalloc(size_t num, const char *file, int line)
  461.   {
  462.       return c_CRYPTO_zalloc(num, file, line);
             ^
  463.   }
  464.   

providers/fips/fipsprov.c:463:1: return from a call to CRYPTO_zalloc
  461.   {
  462.       return c_CRYPTO_zalloc(num, file, line);
  463. > }
  464.   
  465.   void CRYPTO_free(void *ptr, const char *file, int line)

crypto/err/err.c:711:13: Taking false branch
709.               return NULL;
710.   
711.           if ((state = OPENSSL_zalloc(sizeof(*state))) == NULL) {
                   ^
712.               CRYPTO_THREAD_set_local(&err_thread_local, NULL);
713.               return NULL;

crypto/err/err.c:716:14: 
714.           }
715.   
716. >         if (!ossl_init_thread_start(NULL, NULL, err_delete_thread_state)
717.                   || !CRYPTO_THREAD_set_local(&err_thread_local, state)) {
718.               ERR_STATE_free(state);
