> On Sep 1, 2015, at 4:46 AM, Peter Stuge <[email protected]> wrote:
> 
> Engstrom, John wrote:
>> Yeah, technically the line "LIBSSH2_SESSION **session;" is actually
>> "LIBSSH2_SESSION **session)" as in it's the last parameter to a function.
>> The calling code passes in the address of a LIBSSH2_SESSION *.
> 
> Yes, you dereference a double pointer, but which address does it pass?
> 
> If all you have is a pointer to a pointer then you have no actual
> memory where a pointer can be stored. Why are you using a double
> pointer? It seems to be getting you into trouble.
> 
> 
> //Peter

Peter, the calling code has an auto variable LIBSSH2_SESSION *session .  We use 
the ssh session in other routines - for example where we call 
libssh2_userauth_list().  Because we are passing the LIBSSH2_SESSION *session 
into a routine that is responsible for creating the session pointer we pass in 
the pointer pointer so it can modify the pointer in the caller.  Make sense?

John Engstrom
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Reply via email to