File: cipher/elgamal.c
Function: elg_generate_ext
Line of error: 644
Resource leak occurs as variable "xvalue" with assigned memory is not freed
before going out of scope , which causes memory leak.
Libgcrypt version 1.5.4 code:
if (xvalue)
ec = generate_using_x (&sk, nbits, xvalue, retfactors);
else
{-> xvalue after being used is not freed, which amounts to resource leak.
Recommended Code:
if (xvalue)
{
ec = generate_using_x (&sk, nbits, xvalue, retfactors);
gcry_mpi_release (xvalue);
}
else
{I am attaching a patch for the same.