ssl/ssl_lib.c:937: error: NULL_DEREFERENCE
  pointer `sk` last assigned on line 924 could be null and is dereferenced by call to `sk_SSL_CIPHER_push()` at line 937, column 9.
Showing all 22 steps of the trace


ssl/ssl_lib.c:910:1: start of procedure ssl_bytes_to_cipher_list()
908.   	}
909.   
910. > STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s,unsigned char *p,int num,
911.   					       STACK_OF(SSL_CIPHER) **skp)
912.   	{

ssl/ssl_lib.c:917:2: Skipping __function_pointer__(): unresolved function pointer
915.   	int i,n;
916.   
917.   	n=ssl_put_cipher_by_char(s,NULL,NULL);
        ^
918.   	if ((num%n) != 0)
919.   		{

ssl/ssl_lib.c:918:6: Taking false branch
916.   
917.   	n=ssl_put_cipher_by_char(s,NULL,NULL);
918.   	if ((num%n) != 0)
            ^
919.   		{
920.   		SSLerr(SSL_F_SSL_BYTES_TO_CIPHER_LIST,SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST);

ssl/ssl_lib.c:923:7: Taking false branch
921.   		return(NULL);
922.   		}
923.   	if ((skp == NULL) || (*skp == NULL))
             ^
924.   		sk=sk_SSL_CIPHER_new(NULL); /* change perhaps later */
925.   	else

ssl/ssl_lib.c:923:24: Taking true branch
921.   		return(NULL);
922.   		}
923.   	if ((skp == NULL) || (*skp == NULL))
                              ^
924.   		sk=sk_SSL_CIPHER_new(NULL); /* change perhaps later */
925.   	else

ssl/ssl_lib.c:924:3: 
922.   		}
923.   	if ((skp == NULL) || (*skp == NULL))
924. > 		sk=sk_SSL_CIPHER_new(NULL); /* change perhaps later */
925.   	else
926.   		{

ssl/ssl_lib.c:1932:1: start of procedure sk_SSL_CIPHER_new()
  1930.   #endif
  1931.   
  1932. > IMPLEMENT_STACK_OF(SSL_CIPHER)
  1933.   IMPLEMENT_STACK_OF(SSL_COMP)

crypto/stack/stack.c:112:1: start of procedure sk_new()
    110.   	}
    111.   
    112. > STACK *sk_new(int (*c)())
    113.   	{
    114.   	STACK *ret;

crypto/stack/stack.c:117:6: Taking true branch
    115.   	int i;
    116.   
    117.   	if ((ret=(STACK *)Malloc(sizeof(STACK))) == NULL)
                ^
    118.   		goto err0;
    119.   	if ((ret->data=(char **)Malloc(sizeof(char *)*MIN_NODES)) == NULL)

crypto/stack/stack.c:130:1: 
    128.   err1:
    129.   	Free((char *)ret);
    130. > err0:
    131.   	return(NULL);
    132.   	}

crypto/stack/stack.c:131:2: 
    129.   	Free((char *)ret);
    130.   err0:
    131. > 	return(NULL);
    132.   	}
    133.   

crypto/stack/stack.c:132:2: return from a call to sk_new
    130.   err0:
    131.   	return(NULL);
    132.   	}
            ^
    133.   
    134.   int sk_insert(STACK *st, char *data, int loc)

ssl/ssl_lib.c:1932:1: return from a call to sk_SSL_CIPHER_new
  1930.   #endif
  1931.   
  1932. > IMPLEMENT_STACK_OF(SSL_CIPHER)
  1933.   IMPLEMENT_STACK_OF(SSL_COMP)

ssl/ssl_lib.c:931:7: 
929.   		}
930.   
931. > 	for (i=0; i<num; i+=n)
932.   		{
933.   		c=ssl_get_cipher_by_char(s,p);

ssl/ssl_lib.c:931:12: Loop condition is true. Entering loop body
929.   		}
930.   
931.   	for (i=0; i<num; i+=n)
                  ^
932.   		{
933.   		c=ssl_get_cipher_by_char(s,p);

ssl/ssl_lib.c:933:3: Skipping __function_pointer__(): unresolved function pointer
931.   	for (i=0; i<num; i+=n)
932.   		{
933.   		c=ssl_get_cipher_by_char(s,p);
         ^
934.   		p+=n;
935.   		if (c != NULL)

ssl/ssl_lib.c:934:3: 
932.   		{
933.   		c=ssl_get_cipher_by_char(s,p);
934. > 		p+=n;
935.   		if (c != NULL)
936.   			{

ssl/ssl_lib.c:935:7: Taking true branch
933.   		c=ssl_get_cipher_by_char(s,p);
934.   		p+=n;
935.   		if (c != NULL)
             ^
936.   			{
937.   			if (!sk_SSL_CIPHER_push(sk,c))

ssl/ssl_lib.c:937:9: 
935.   		if (c != NULL)
936.   			{
937. > 			if (!sk_SSL_CIPHER_push(sk,c))
938.   				{
939.   				SSLerr(SSL_F_SSL_BYTES_TO_CIPHER_LIST,ERR_R_MALLOC_FAILURE);

ssl/ssl_lib.c:1932:1: start of procedure sk_SSL_CIPHER_push()
  1930.   #endif
  1931.   
  1932. > IMPLEMENT_STACK_OF(SSL_CIPHER)
  1933.   IMPLEMENT_STACK_OF(SSL_COMP)

crypto/stack/stack.c:233:1: start of procedure sk_push()
    231.   	}
    232.   
    233. > int sk_push(STACK *st, char *data)
    234.   	{
    235.   	return(sk_insert(st,data,st->num));

crypto/stack/stack.c:235:2: Skipping sk_insert(): empty list of specs
    233.   int sk_push(STACK *st, char *data)
    234.   	{
    235.   	return(sk_insert(st,data,st->num));
            ^
    236.   	}
    237.   
