summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Doty <kingtaco@gentoo.org>2007-07-04 06:18:08 +0000
committerMike Doty <kingtaco@gentoo.org>2007-07-04 06:18:08 +0000
commitfd52b400d750deb8ab7e262d02f5ee77f0c1c287 (patch)
tree878b274291a89fee81b0247a4d20dd0cb195a5df /dev-lang/ruby/files
parentVersion bump. Dropped old version. (diff)
downloadgentoo-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-r36
-rw-r--r--dev-lang/ruby/files/ruby-1.8.6-memory-leak.diff60
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