CSTP reconnect segfault on HEAD

Jack Miller jack at codezen.org
Wed Jun 27 16:39:43 EDT 2012


On Wed, Jun 27, 2012 at 08:06:19PM +0100, David Woodhouse wrote:
> The problem is in cstp_reconnect() in frame #1, and it arises because
> you have --no-deflate on the command line. (Why, btw?)

I'm embarassed to say I don't know. I added it to my network script that way
because it was listed in an internal wiki on how to migrate from whatever
awful blob they forced on us before =). It worked, so I never touched it
again.

> 
> On reconnect, we check if the pending packet to be sent is the special
> 'deflate_pkt', which contains the compressed version of a packet. If so,
> we requeue the *original* packet, since the compression will reset with
> the new connection.
> 
> However, the check 'vpninfo->current_ssl_pkt == vpninfo->deflate_pkt' is
> still true even when both of those pointers are NULL, because there's no
> pending packet to be sent and the 'deflate_pkt' was never allocated
> because we aren't doing compression today. So we try to requeue the
> packet, which is NULL...

Ah, of course.

> 
> Your patch was actually perfectly sufficient, but this is the better fix
> which I'll push to the repository if you can confirm that it's working:
>

It's been running for over an hour, so I can say that it looks good here.

- Jack



More information about the openconnect-devel mailing list