commit a1d8f05f4e1a40f16a6fa2ed23ab5a0e75987230
parent 930395862ec422b5009ec9bcd1ea4ed768c17266
Author: Colin Leroy <colin@colino.net>
Date: Sun, 16 Nov 2014 14:25:12 +0100
Fix double free
Diffstat:
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/src/ldif.c b/src/ldif.c
@@ -642,20 +642,9 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) {
/* Save record */
fullValue = mgu_list_coalesce( listValue );
if (fullValue && last64) {
- out = g_base64_decode(fullValue, &len);
- if (len >= 0) {
- g_free(fullValue);
- fullValue = out;
- fullValue[len] = '\0';
- }
- g_free(out);
- }
- /* Base-64 encoded data */
- /*
- if( last64 ) {
- ldif_dump_b64( fullValue );
+ g_free(fullValue);
+ fullValue = g_base64_decode(fullValue, &len);
}
- */
ldif_add_value( rec, lastTag, fullValue, hashField );
/* ldif_print_record( rec, stdout ); */
@@ -663,6 +652,7 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) {
ldif_clear_rec( rec );
g_free( lastTag );
mgu_free_list( listValue );
+ g_free(fullValue);
lastTag = NULL;
listValue = NULL;
last64 = FALSE;