crypto/conf/conf.c:471: error: USE_AFTER_FREE
  accessing memory that was invalidated by call to `free()` on line 473.
Showing all 14 steps of the trace


crypto/conf/conf.c:459:1: invalidation part of the trace starts here
457.   	}
458.   
459. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
460.   	{
461.   	CONF_VALUE *vv;

crypto/conf/conf.c:459:1: parameter `a` of value_free_stack
  457.   	}
  458.   
  459. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
  460.   	{
  461.   	CONF_VALUE *vv;

crypto/conf/conf.c:467:2: assigned
  465.   	if (a->name != NULL) return;
  466.   
  467.   	sk=(STACK *)a->value;
          ^
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{

crypto/conf/conf.c:470:20: passed as argument to `sk_value`
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  471.   		Free(vv->value);
  472.   		Free(vv->name);

crypto/conf/conf.c:470:20: return from call to `sk_value`
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  471.   		Free(vv->value);
  472.   		Free(vv->name);

crypto/conf/conf.c:470:3: assigned
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
           ^
  471.   		Free(vv->value);
  472.   		Free(vv->name);

crypto/conf/conf.c:473:3: was invalidated by call to `free()`
  471.   		Free(vv->value);
  472.   		Free(vv->name);
  473.   		Free(vv);
           ^
  474.   		}
  475.   	if (sk != NULL) sk_free(sk);

crypto/conf/conf.c:459:1: use-after-lifetime part of the trace starts here
457.   	}
458.   
459. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
460.   	{
461.   	CONF_VALUE *vv;

crypto/conf/conf.c:459:1: parameter `a` of value_free_stack
  457.   	}
  458.   
  459. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
  460.   	{
  461.   	CONF_VALUE *vv;

crypto/conf/conf.c:467:2: assigned
  465.   	if (a->name != NULL) return;
  466.   
  467.   	sk=(STACK *)a->value;
          ^
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{

crypto/conf/conf.c:470:20: passed as argument to `sk_value`
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  471.   		Free(vv->value);
  472.   		Free(vv->name);

crypto/conf/conf.c:470:20: return from call to `sk_value`
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  471.   		Free(vv->value);
  472.   		Free(vv->name);

crypto/conf/conf.c:470:3: assigned
  468.   	for (i=sk_num(sk)-1; i>=0; i--)
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
           ^
  471.   		Free(vv->value);
  472.   		Free(vv->name);

crypto/conf/conf.c:471:3: invalid access occurs here
  469.   		{
  470.   		vv=(CONF_VALUE *)sk_value(sk,i);
  471.   		Free(vv->value);
           ^
  472.   		Free(vv->name);
  473.   		Free(vv);
