From dab010550e29eaad6120a0f7e11aab413687d656 Mon Sep 17 00:00:00 2001 From: Jorge Arellano Cid Date: Mon, 5 Jan 2009 09:40:14 -0300 Subject: Free UTF8Data before changing its value. --- src/cache.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/cache.c') diff --git a/src/cache.c b/src/cache.c index c1bdcec1..e9a3418e 100644 --- a/src/cache.c +++ b/src/cache.c @@ -425,6 +425,7 @@ static void Cache_ref_data(CacheEntry_t *entry) entry->DataRefcount++; _MSG("DataRefcount++: %d\n", entry->DataRefcount); if (entry->CharsetDecoder && entry->DataRefcount == 1) { + dStr_free(entry->UTF8Data, 1); entry->UTF8Data = a_Decode_process(entry->CharsetDecoder, entry->Data->str, entry->Data->len); @@ -760,8 +761,10 @@ static void Cache_parse_header(CacheEntry_t *entry) a_Misc_parse_content_type(Type, NULL, NULL, &charset); if (charset) { entry->CharsetDecoder = a_Decode_charset_init(charset); - if (entry->CharsetDecoder) + if (entry->CharsetDecoder) { + dStr_free(entry->UTF8Data, 1); entry->UTF8Data = dStr_new(""); + } dFree(charset); } } -- cgit v1.2.3