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


crypto/conf/conf.c:465:1: invalidation part of the trace starts here
463.   	}
464.   
465. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
466.   	{
467.   	CONF_VALUE *vv;

crypto/conf/conf.c:465:1: parameter `a` of value_free_stack
  463.   	}
  464.   
  465. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
  466.   	{
  467.   	CONF_VALUE *vv;

crypto/conf/conf.c:473:2: assigned
  471.   	if (a->name != NULL) return;
  472.   
  473.   	sk=(STACK *)a->value;
          ^
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{

crypto/conf/conf.c:476:20: passed as argument to `sk_value`
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  477.   		Free(vv->value);
  478.   		Free(vv->name);

crypto/conf/conf.c:476:20: return from call to `sk_value`
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  477.   		Free(vv->value);
  478.   		Free(vv->name);

crypto/conf/conf.c:476:3: assigned
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
           ^
  477.   		Free(vv->value);
  478.   		Free(vv->name);

crypto/conf/conf.c:479:3: was invalidated by call to `free()`
  477.   		Free(vv->value);
  478.   		Free(vv->name);
  479.   		Free(vv);
           ^
  480.   		}
  481.   	if (sk != NULL) sk_free(sk);

crypto/conf/conf.c:465:1: use-after-lifetime part of the trace starts here
463.   	}
464.   
465. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
466.   	{
467.   	CONF_VALUE *vv;

crypto/conf/conf.c:465:1: parameter `a` of value_free_stack
  463.   	}
  464.   
  465. > static void value_free_stack(CONF_VALUE *a, LHASH *conf)
  466.   	{
  467.   	CONF_VALUE *vv;

crypto/conf/conf.c:473:2: assigned
  471.   	if (a->name != NULL) return;
  472.   
  473.   	sk=(STACK *)a->value;
          ^
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{

crypto/conf/conf.c:476:20: passed as argument to `sk_value`
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  477.   		Free(vv->value);
  478.   		Free(vv->name);

crypto/conf/conf.c:476:20: return from call to `sk_value`
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
                            ^
  477.   		Free(vv->value);
  478.   		Free(vv->name);

crypto/conf/conf.c:476:3: assigned
  474.   	for (i=sk_num(sk)-1; i>=0; i--)
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
           ^
  477.   		Free(vv->value);
  478.   		Free(vv->name);

crypto/conf/conf.c:477:3: invalid access occurs here
  475.   		{
  476.   		vv=(CONF_VALUE *)sk_value(sk,i);
  477.   		Free(vv->value);
           ^
  478.   		Free(vv->name);
  479.   		Free(vv);
