aboutsummaryrefslogtreecommitdiffstats
path: root/transcode.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-04 05:08:57 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-04 05:08:57 +0000
commit3916eb783c3154f62b4c2d7d6a7b88c656281822 (patch)
tree33ec01d96fdcc5aeeb118d06ff6c3c0e084c054d /transcode.c
parente231d67ee1e9fefaf51ccebb10164b184f32440f (diff)
downloadruby-3916eb783c3154f62b4c2d7d6a7b88c656281822.tar.gz
* marshal.c (dump_ensure), process.c (run_exec_dup2),
string.c (rb_str_replace), transcode.c (transcode_dispatch): fixed memory leaks. based on patches from shinichiro.h <shinichiro.hamaji AT gmail.com> at [ruby-dev:35751]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'transcode.c')
-rw-r--r--transcode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/transcode.c b/transcode.c
index f79ad6dbda..38cd155f35 100644
--- a/transcode.c
+++ b/transcode.c
@@ -110,6 +110,7 @@ transcode_dispatch(const char *from_encoding, const char *to_encoding)
}
if (!val) {
if (!st_lookup(transcoder_table, (st_data_t)key, &val)) {
+ xfree(key);
/* multistep logic, via UTF-8 */
if (!encoding_equal(from_encoding, "UTF-8") &&
!encoding_equal(to_encoding, "UTF-8") &&
@@ -119,6 +120,7 @@ transcode_dispatch(const char *from_encoding, const char *to_encoding)
return NULL;
}
}
+ xfree(key);
return (rb_transcoder *)val;
}