[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Pkg-octave-devel] Bug#541433: marked as done (octave-sockets: memory leak)



Your message dated Sat, 2 Jan 2010 20:23:20 +0100
with message-id <20100102192320.GA6401@atlan>
and subject line Re: [Pkg-octave-devel] Bug#541433: Bug#541433: octave-sockets: memory leak
has caused the Debian Bug report #541433,
regarding octave-sockets: memory leak
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
541433: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541433
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: octave-sockets
Version: 1.0.4-3
Severity: important

There are two memory leaks in sockets.cc 
The first one is a new[] which is paired with delete and not delete[].
The second one has a new[] but no delete[].

I suggest a patch which is attached.

Thanks,
Paul


-- System Information:
Debian Release: 5.0.2
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages octave-sockets depends on:
ii  libatlas3gf-base [libl 3.6.0-22          Automatically Tuned Linear Algebra
ii  libblas3gf [libblas.so 1.2-2             Basic Linear Algebra Subroutines 3
ii  libc6                  2.7-18            GNU C Library: Shared libraries
ii  libfftw3-3             3.1.2-3.1         library for computing Fast Fourier
ii  libgcc1                1:4.3.2-1.1       GCC support library
ii  libgfortran3           4.3.2-1.1         Runtime library for GNU Fortran ap
ii  libhdf5-serial-1.6.6-0 1.6.6-4           Hierarchical Data Format 5 (HDF5) 
ii  liblapack3gf [liblapac 3.1.1-1           library of linear algebra routines
ii  libncurses5            5.7+20081213-1    shared libraries for terminal hand
ii  libreadline5           5.2-3.1           GNU readline and history libraries
ii  libstdc++6             4.3.2-1.1         The GNU Standard C++ Library v3
ii  octave3.0              1:3.0.1-6lenny3   GNU Octave language for numerical 
ii  zlib1g                 1:1.2.3.3.dfsg-12 compression library - runtime

octave-sockets recommends no packages.

octave-sockets suggests no packages.

-- no debconf information
--- sockets.cc.debian-1.0.4-3	2009-08-14 08:11:38.000000000 +0200
+++ sockets.cc	2009-08-14 08:14:23.000000000 +0200
@@ -528,7 +528,7 @@ DEFUN_DLD(send,args,nargout, \
     for ( int i = 0 ; i < d1.length() ; i++ )
       buf[i] = (unsigned char)d1(i);
     retval = ::send( s->get_sock_fd(), (const char*)buf, data.byte_size(), 0 );
-    delete buf;
+    delete[] buf;
   }
   else
   {
@@ -543,7 +543,8 @@ DEFUN_DLD(send,args,nargout, \
 // function to receive data over a socket
 DEFUN_DLD(recv,args,nargout, \
 	  "recv(octave_socket,int)\nSee the send() man pages.  This will only allow the" \
-	  " user to receive uint8 arrays or strings")
+	  " user to receive uint8 arrays or strings" \
+"\n pauls version")
 {
   int retval = 0;
   int flags = 0;
@@ -571,11 +572,14 @@ DEFUN_DLD(recv,args,nargout, \
   }
   else
   {
-    error("connect: expecting a octave_socket or integer");
+    error("recv: expecting a octave_socket or integer");
     return octave_value(-1);
   }
 
   long len = args(1).int_value();
+  if(len<0) 
+    error("recv: negative receive length requested");
+  
   unsigned char* buf = new unsigned char[ len ];
 #ifndef __WIN32__
   retval = ::recv( s->get_sock_fd(), buf, len, flags );
@@ -588,6 +592,8 @@ DEFUN_DLD(recv,args,nargout, \
   for ( int i = 0 ; i < retval ; i++ )
     return_buf(0,i) = buf[i];
 
+  delete[] buf;
+
   octave_value in_buf(return_buf);
   octave_value out_buf;
   OCTAVE_TYPE_CONV( in_buf, out_buf, uint8 );

--- End Message ---
--- Begin Message ---
Package: octave-sockets
Version: 1.0.6-1
thanks

The memory leak is fixed in the new upstream release already uploaded.

	Thomas


--- End Message ---

Reply to: