[前][次][番号順一覧][スレッド一覧]

ruby-changes:33212

From: nobu <ko1@a...>
Date: Sat, 8 Mar 2014 13:47:02 +0900 (JST)
Subject: [ruby-changes:33212] nobu:r45291 (trunk): ext/dl, ext/fiddle: fix memory leak

nobu	2014-03-08 13:46:57 +0900 (Sat, 08 Mar 2014)

  New Revision: 45291

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=45291

  Log:
    ext/dl, ext/fiddle: fix memory leak
    
    * ext/dl/cptr.c (dlptr_free), ext/dl/handle.c (dlhandle_free),
      ext/fiddle/handle.c (fiddle_handle_free),
      ext/fiddle/pointer.c (fiddle_ptr_free): fix memory leak.
      based on the patch Heesob Park at [ruby-dev:48021] [Bug #9599].

  Modified files:
    trunk/ChangeLog
    trunk/ext/dl/cptr.c
    trunk/ext/dl/handle.c
    trunk/ext/fiddle/handle.c
    trunk/ext/fiddle/pointer.c
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 45290)
+++ ChangeLog	(revision 45291)
@@ -1,3 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Sat Mar  8 13:46:40 2014  Nobuyoshi Nakada  <nobu@r...>
+
+	* ext/dl/cptr.c (dlptr_free), ext/dl/handle.c (dlhandle_free),
+	  ext/fiddle/handle.c (fiddle_handle_free),
+	  ext/fiddle/pointer.c (fiddle_ptr_free): fix memory leak.
+	  based on the patch Heesob Park at [ruby-dev:48021] [Bug #9599].
+
 Sat Mar  8 13:30:39 2014  Nobuyoshi Nakada  <nobu@r...>
 
 	* process.c (obj2uid, obj2gid): now getpwnam_r() and getgrnam_r()
Index: ext/dl/cptr.c
===================================================================
--- ext/dl/cptr.c	(revision 45290)
+++ ext/dl/cptr.c	(revision 45291)
@@ -49,6 +49,7 @@ dlptr_free(void *ptr) https://github.com/ruby/ruby/blob/trunk/ext/dl/cptr.c#L49
 	    (*(data->free))(data->ptr);
 	}
     }
+    xfree(ptr);
 }
 
 static size_t
Index: ext/dl/handle.c
===================================================================
--- ext/dl/handle.c	(revision 45290)
+++ ext/dl/handle.c	(revision 45291)
@@ -38,6 +38,7 @@ dlhandle_free(void *ptr) https://github.com/ruby/ruby/blob/trunk/ext/dl/handle.c#L38
     if( dlhandle->ptr && dlhandle->open && dlhandle->enable_close ){
 	dlclose(dlhandle->ptr);
     }
+    xfree(ptr);
 }
 
 static size_t
Index: ext/fiddle/pointer.c
===================================================================
--- ext/fiddle/pointer.c	(revision 45290)
+++ ext/fiddle/pointer.c	(revision 45291)
@@ -65,6 +65,7 @@ fiddle_ptr_free(void *ptr) https://github.com/ruby/ruby/blob/trunk/ext/fiddle/pointer.c#L65
 	    (*(data->free))(data->ptr);
 	}
     }
+    xfree(ptr);
 }
 
 static size_t
Index: ext/fiddle/handle.c
===================================================================
--- ext/fiddle/handle.c	(revision 45290)
+++ ext/fiddle/handle.c	(revision 45291)
@@ -40,6 +40,7 @@ fiddle_handle_free(void *ptr) https://github.com/ruby/ruby/blob/trunk/ext/fiddle/handle.c#L40
     if( fiddle_handle->ptr && fiddle_handle->open && fiddle_handle->enable_close ){
 	dlclose(fiddle_handle->ptr);
     }
+    xfree(ptr);
 }
 
 static size_t

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]