#182: Various memory leaks
-------------------------------+--------------------------------------------
  Reporter:  j...@…            |       Owner:  bagder  
      Type:  defect            |      Status:  assigned
  Priority:  normal            |   Milestone:  1.2.6   
 Component:  API               |     Version:  1.2.6   
Resolution:                    |    Keywords:          
    Blocks:                    |   Blocked By:          
-------------------------------+--------------------------------------------

Comment (by j...@…):

 Two memory leaks if the socket is closed before closing the channel. Use
 the ssh2.c example program (diff -u ssh2.c)

 --- ssh2.c      Thu Jun 10 07:36:02 2010
 +++ /usr2/other/libssh2/libssh2-1.2.6/example/ssh2.c    Wed Jun 23
 11:30:29 2010
 @@ -230,6 +230,7 @@
       */

    skip_shell:
 +close(sock); /* close socket BEFORE doing anything else, simulate a close
 from server */
      if (channel) {
          libssh2_channel_free(channel);
          channel = NULL;

 Memory leaked,
 channel.c, line 160, '''session->open_channel'''
 channel.c, line 170, '''session->open_channel->channel_type'''

 Because the socket is now dead, any call to '''libssh2_channel_free'''
 will return -7 "Unable to send EOF on channel" and fails before releasing
 all the memory. You can't get beyond line 2293 and the call to
 '''_libssh2_channel_close'''
 I can find no line of code that sets '''session->socket_state''', which
 would be useful.

-- 
Ticket URL: <http://trac.libssh2.org/ticket/182#comment:3>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Reply via email to