summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cache.c5
1 files changed, 4 insertions, 1 deletions
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);
}
}