From: Alexander Barton Date: Sun, 23 Jan 2011 17:38:36 +0000 (+0100) Subject: Better check for invalid IRC+ PASS command X-Git-Tag: rel-18-rc1~69 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8700f4d93cb50ebe7639e7a32e93b94c36ed3fae;p=ngircd Better check for invalid IRC+ PASS command Don't do a NULL-pointer dereference when a remote server using the IRC+ protocol sends an invalid PASS command without the required parameter ... --- diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 73dd8d1f..8af4df95 100644 --- a/src/ngircd/irc-login.c +++ b/src/ngircd/irc-login.c @@ -143,8 +143,8 @@ IRC_PASS( CLIENT *Client, REQUEST *Req ) if (type && strcmp(type, PROTOIRCPLUS) == 0) { /* The peer seems to be a server which supports the * IRC+ protocol (see doc/Protocol.txt). */ - serverver = ptr + 1; - flags = strchr(serverver, ':'); + serverver = ptr ? ptr + 1 : "?"; + flags = strchr(ptr ? serverver : impl, ':'); if (flags) { *flags = '\0'; flags++;