crypto/bn/bn_lib.c:496: error: MEMORY_LEAK
  memory dynamically allocated by call to `BN_new()` at line 494, column 4 is not reachable after line 496, column 2.
Showing all 13 steps of the trace


crypto/bn/bn_lib.c:488:1: start of procedure BN_dup()
486.   	}
487.   
488. > BIGNUM *BN_dup(const BIGNUM *a)
489.   	{
490.   	BIGNUM *r;

crypto/bn/bn_lib.c:494:2: 
492.   	bn_check_top(a);
493.   
494. > 	r=BN_new();
495.   	if (r == NULL) return(NULL);
496.   	return((BIGNUM *)BN_copy(r,a));

crypto/bn/bn_lib.c:290:1: start of procedure BN_new()
  288.   	}
  289.   
  290. > BIGNUM *BN_new(void)
  291.   	{
  292.   	BIGNUM *ret;

crypto/bn/bn_lib.c:294:6: Taking false branch
  292.   	BIGNUM *ret;
  293.   
  294.   	if ((ret=(BIGNUM *)Malloc(sizeof(BIGNUM))) == NULL)
              ^
  295.   		{
  296.   		BNerr(BN_F_BN_NEW,ERR_R_MALLOC_FAILURE);

crypto/bn/bn_lib.c:299:2: 
  297.   		return(NULL);
  298.   		}
  299. > 	ret->flags=BN_FLG_MALLOCED;
  300.   	ret->top=0;
  301.   	ret->neg=0;

crypto/bn/bn_lib.c:300:2: 
  298.   		}
  299.   	ret->flags=BN_FLG_MALLOCED;
  300. > 	ret->top=0;
  301.   	ret->neg=0;
  302.   	ret->max=0;

crypto/bn/bn_lib.c:301:2: 
  299.   	ret->flags=BN_FLG_MALLOCED;
  300.   	ret->top=0;
  301. > 	ret->neg=0;
  302.   	ret->max=0;
  303.   	ret->d=NULL;

crypto/bn/bn_lib.c:302:2: 
  300.   	ret->top=0;
  301.   	ret->neg=0;
  302. > 	ret->max=0;
  303.   	ret->d=NULL;
  304.   	return(ret);

crypto/bn/bn_lib.c:303:2: 
  301.   	ret->neg=0;
  302.   	ret->max=0;
  303. > 	ret->d=NULL;
  304.   	return(ret);
  305.   	}

crypto/bn/bn_lib.c:304:2: 
  302.   	ret->max=0;
  303.   	ret->d=NULL;
  304. > 	return(ret);
  305.   	}
  306.   

crypto/bn/bn_lib.c:305:2: return from a call to BN_new
  303.   	ret->d=NULL;
  304.   	return(ret);
  305.   	}
          ^
  306.   
  307.   

crypto/bn/bn_lib.c:495:6: Taking false branch
493.   
494.   	r=BN_new();
495.   	if (r == NULL) return(NULL);
            ^
496.   	return((BIGNUM *)BN_copy(r,a));
497.   	}

crypto/bn/bn_lib.c:496:2: Skipping BN_copy(): empty list of specs
494.   	r=BN_new();
495.   	if (r == NULL) return(NULL);
496.   	return((BIGNUM *)BN_copy(r,a));
        ^
497.   	}
498.   

BIGNUM *BN_dup(const BIGNUM *a)
	{
	BIGNUM *r;
	bn_check_top(a);
	r=BN_new();
	if (r == NULL) return(NULL);
	return((BIGNUM *)BN_copy(r,a));
	}
['BIGNUM *BN_dup(const BIGNUM *a)\n\t{\n\tBIGNUM *r;\n\tbn_check_top(a);\n\tr=BN_new();\n\tif (r == NULL) return(NULL);\n\treturn((BIGNUM *)BN_copy(r,a));\n\t}', 'BIGNUM *BN_new(void)\n\t{\n\tBIGNUM *ret;\n\tif ((ret=(BIGNUM *)Malloc(sizeof(BIGNUM))) == NULL)\n\t\t{\n\t\tBNerr(BN_F_BN_NEW,ERR_R_MALLOC_FAILURE);\n\t\treturn(NULL);\n\t\t}\n\tret->flags=BN_FLG_MALLOCED;\n\tret->top=0;\n\tret->neg=0;\n\tret->max=0;\n\tret->d=NULL;\n\treturn(ret);\n\t}']