summaryrefslogtreecommitdiff
path: root/src/cache.c
diff options
context:
space:
mode:
authorJorge Arellano Cid <jcid@dillo.org>2009-01-05 09:40:14 -0300
committerJorge Arellano Cid <jcid@dillo.org>2009-01-05 09:40:14 -0300
commitdab010550e29eaad6120a0f7e11aab413687d656 (patch)
tree4e3538673a39305b6feb84a0a67062858e2ae84d /src/cache.c
parente705debdae8d2ff8e4331246e4d51c077a4235ba (diff)
Free UTF8Data before changing its value.
Diffstat (limited to 'src/cache.c')
-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);
}
}