diff --git a/gpgmeplug/ChangeLog b/gpgmeplug/ChangeLog index 85bc4ed7..bf8acd8d 100644 --- a/gpgmeplug/ChangeLog +++ b/gpgmeplug/ChangeLog @@ -1,3 +1,10 @@ +2002-07-01 Werner Koch + + * gpgmeplug.c (findCertificates): Reintroduced a free which must + have been removed after my last fix. This avoids a memory leak + when a fingerprint was not found. Removed the double loop + increment in the code to release the arrays. + 2002-06-28 Werner Koch * gpgmeplug.c (xmalloc): New. diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c index f681b1ee..538f569e 100644 --- a/gpgmeplug/gpgmeplug.c +++ b/gpgmeplug/gpgmeplug.c @@ -2363,6 +2363,7 @@ bool findCertificates( const char* addressee, break; } } + free (dn); } } } @@ -2378,7 +2379,7 @@ bool findCertificates( const char* addressee, *certificates = xmalloc( sizeof(char) * siz ); memset( *certificates, 0, sizeof(char) * siz ); /* fill the buffer */ - for( iFound=0; iFound < nFound; ++iFound ) { + for (iFound=0; iFound < nFound; iFound++) { if( !iFound ) strcpy(*certificates, DNs[iFound] ); else { @@ -2388,7 +2389,6 @@ bool findCertificates( const char* addressee, strcat( *certificates, openBracket ); strcat( *certificates, FPRs[iFound] ); strcat( *certificates, closeBracket ); - ++iFound; free( DNs[ iFound ] ); free( FPRs[iFound ] ); }