From c9603a38774fb118d4aaa96e170674412ed7328a Mon Sep 17 00:00:00 2001 From: Marius Halden Date: Wed, 6 Apr 2016 19:51:13 +0200 Subject: Ignore CAP END when received multiple times This fixes a segfault when CAP END was received after the capabilty negotiation was already over. --- irc_cap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/irc_cap.c b/irc_cap.c index 42f70529..af1215e0 100644 --- a/irc_cap.c +++ b/irc_cap.c @@ -176,6 +176,9 @@ void irc_cmd_cap(irc_t *irc, char **cmd) irc_send_cap(irc, ack ? "ACK" : "NAK", cmd[2] ? : ""); } else if (g_strcasecmp(cmd[1], "END") == 0) { + if (!(irc->status & USTATUS_CAP_PENDING)) { + return; + } irc->status &= ~USTATUS_CAP_PENDING; if (irc->status & USTATUS_SASL_PLAIN_PENDING) { -- cgit v1.2.3