www.libssh2.org | Daily snapshots | Mailing list archive | Docs | Examples | github

Archive Index This month's Index

Subject: Re: Memory leak on mac

Re: Memory leak on mac

From: Kamil Dudka <kdudka_at_redhat.com>
Date: Wed, 17 Feb 2016 19:28:14 +0100

On Wednesday, February 17, 2016 19:08:47 Velichko Yuriy wrote:
> int res = LIBSSH2_ERROR_EAGAIN;
>
> while( res != 0 )
>
> re = libssh2_channel_free(channel);
>
>
> This code helps, but is it safe? Can be infinity loop here?

This looks wrong to me. You need to call the library function again in case
it returns LIBSSH2_ERROR_EAGAIN, but break the loop in case it returns another
error code.

Kamil

> Maybe other solution are exist?
>
> On 17 February 2016 at 18:56, Velichko Yuriy <velichko.yuriy_at_gmail.com>
>
> wrote:
> > ​Thanks, ​Kamil.
> > Can you point me on example how to handle LIBSSH2_ERROR_EAGAIN to free
> > resources properly?
> >
> > On 17 February 2016 at 17:47, Kamil Dudka <kdudka_at_redhat.com> wrote:
> >> On Wednesday, February 17, 2016 16:04:06 Velichko Yuriy wrote:
> >> > In the attached archive an example based on libssh2 docs:
> >> >
> >> > http://www.libssh2.org/examples/tcpip-forward.html
> >> >
> >> > In the attached code the port forwarding is implemented. In the
> >> > infinity
> >> > loop we preforms port forwarding of the PostgreSQL port on the remote
> >> > computer. In the end of the loop all resources are freeing.
> >> >
> >> > But memory increases constantly.
> >> >
> >> > I think that I'm doing something wrong. Tell me please what exactly? )
> >>
> >> Your code does not seem to handle LIBSSH2_ERROR_EAGAIN coming out
> >> of libssh2_channel_free() and libssh2_session_free(). It should.
> >>
> >> Kamil
> >
> > --
> > ​С уважением, Величко Юрий.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2016-02-17

the libssh2 team