Skip to content

Commit

Permalink
fix SEGV on lost connection
Browse files Browse the repository at this point in the history
Stop cstp_bye() when the https connection was already lost.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Wu, Fengguang authored and David Woodhouse committed Dec 12, 2008
1 parent bd761ea commit 0c1364b
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions cstp.c
Expand Up @@ -635,13 +635,19 @@ int cstp_mainloop(struct openconnect_info *vpninfo, int *timeout)
int cstp_bye(struct openconnect_info *vpninfo, char *reason)
{
unsigned char *bye_pkt;
int reason_len = strlen(reason);
int reason_len;

/* already lost connection? */
if (!vpninfo->https_ssl)
return 0;

reason_len = strlen(reason);
bye_pkt = malloc(reason_len + 8);
if (!bye_pkt)
return -ENOMEM;

memcpy(bye_pkt, data_hdr, 8);
memcpy(bye_pkt + 8, reason, strlen(reason));
memcpy(bye_pkt + 8, reason, reason_len);

bye_pkt[4] = reason_len >> 8;
bye_pkt[5] = reason_len & 0xff;
Expand Down

0 comments on commit 0c1364b

Please sign in to comment.