aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2016-04-06 19:51:13 +0200
committerMarius Halden <marius.h@lden.org>2016-04-06 20:08:41 +0200
commitc9603a38774fb118d4aaa96e170674412ed7328a (patch)
tree313c945f48058e3f562e9e56dd68f5c0e4bf3e10
parent64b42638fae4c2af5d334e64e96d748841f8618e (diff)
Ignore CAP END when received multiple times
This fixes a segfault when CAP END was received after the capabilty negotiation was already over.
-rw-r--r--irc_cap.c3
1 files changed, 3 insertions, 0 deletions
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) {