diff options
author | Mike Doty <kingtaco@gentoo.org> | 2007-07-04 06:18:08 +0000 |
---|---|---|
committer | Mike Doty <kingtaco@gentoo.org> | 2007-07-04 06:18:08 +0000 |
commit | fd52b400d750deb8ab7e262d02f5ee77f0c1c287 (patch) | |
tree | 878b274291a89fee81b0247a4d20dd0cb195a5df /dev-lang/ruby/files | |
parent | Version bump. Dropped old version. (diff) | |
download | gentoo-2-fd52b400d750deb8ab7e262d02f5ee77f0c1c287.tar.gz gentoo-2-fd52b400d750deb8ab7e262d02f5ee77f0c1c287.tar.bz2 gentoo-2-fd52b400d750deb8ab7e262d02f5ee77f0c1c287.zip |
fixed memory leak loading .so bug #182946
(Portage version: 2.1.3_rc5)
Diffstat (limited to 'dev-lang/ruby/files')
-rw-r--r-- | dev-lang/ruby/files/digest-ruby-1.8.6_p36-r3 | 6 | ||||
-rw-r--r-- | dev-lang/ruby/files/ruby-1.8.6-memory-leak.diff | 60 |
2 files changed, 66 insertions, 0 deletions
diff --git a/dev-lang/ruby/files/digest-ruby-1.8.6_p36-r3 b/dev-lang/ruby/files/digest-ruby-1.8.6_p36-r3 new file mode 100644 index 000000000000..2cc0191d7069 --- /dev/null +++ b/dev-lang/ruby/files/digest-ruby-1.8.6_p36-r3 @@ -0,0 +1,6 @@ +MD5 7e4c2b197387232afd9a11378feeb246 onigd2_5_9.tar.gz 221355 +RMD160 ceeee9a0221d431d6576a566621ba9badab6423d onigd2_5_9.tar.gz 221355 +SHA256 b24df7c0fa6fc72ce37fd1e203f378359f29f739a3f4c5b6bdd40ca5f7d25db0 onigd2_5_9.tar.gz 221355 +MD5 2a252394ecdcbcb3a55732efd9d38e27 ruby-1.8.6-p36.tar.gz 4535005 +RMD160 8e3ca34149b60c649ee50ee98c5e89de04099eba ruby-1.8.6-p36.tar.gz 4535005 +SHA256 1a9db5f4720a7023d9ecfaa6c4128ecb5f8cd59460744fb4b5f3b64ed3786935 ruby-1.8.6-p36.tar.gz 4535005 diff --git a/dev-lang/ruby/files/ruby-1.8.6-memory-leak.diff b/dev-lang/ruby/files/ruby-1.8.6-memory-leak.diff new file mode 100644 index 000000000000..b71f4088f570 --- /dev/null +++ b/dev-lang/ruby/files/ruby-1.8.6-memory-leak.diff @@ -0,0 +1,60 @@ +Index: ptr.c +=================================================================== +--- ptr.c (revision 12047) ++++ ptr.c (working copy) +@@ -53,6 +53,8 @@ + void + dlptr_free(struct ptr_data *data) + { ++ if (!data) ++ return; + if (data->ptr) { + DEBUG_CODE({ + printf("dlptr_free(): removing the pointer `0x%x' from the MemorySpace\n", +@@ -69,4 +71,5 @@ + if (data->stype) dlfree(data->stype); + if (data->ssize) dlfree(data->ssize); + if (data->ids) dlfree(data->ids); ++ dlfree(data); + } + + void +Index: sym.c +=================================================================== +--- sym.c (revision 12047) ++++ sym.c (working copy) +@@ -57,6 +57,8 @@ + void + dlsym_free(struct sym_data *data) + { ++ if(!data) ++ return; + if( data->name ){ + DEBUG_CODE({ + printf("dlsym_free(): free(data->name:%s)\n",data->name); +@@ -69,4 +71,5 @@ + }); + free(data->type); + } ++ dlfree(data); + } + + VALUE +Index: handle.c +=================================================================== +--- handle.c (revision 12047) ++++ handle.c (working copy) +@@ -10,7 +10,10 @@ + void + dlhandle_free(struct dl_handle *dlhandle) + { ++ if (!dlhandle) ++ return; + if (dlhandle->ptr && dlhandle->open && dlhandle->enable_close) { +- dlclose(dlhandle->ptr); ++ dlclose(dlhandle->ptr); + } ++ dlfree(dlhandle); + } + + VALUE |