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


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

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

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

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

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

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

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

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

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

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

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

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

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

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