diff options
author | Jorge Arellano Cid <jcid@dillo.org> | 2009-01-05 09:40:14 -0300 |
---|---|---|
committer | Jorge Arellano Cid <jcid@dillo.org> | 2009-01-05 09:40:14 -0300 |
commit | dab010550e29eaad6120a0f7e11aab413687d656 (patch) | |
tree | 4e3538673a39305b6feb84a0a67062858e2ae84d /src | |
parent | e705debdae8d2ff8e4331246e4d51c077a4235ba (diff) |
Free UTF8Data before changing its value.
Diffstat (limited to 'src')
-rw-r--r-- | src/cache.c | 5 |
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); } } |