commit 8700f4d93cb50ebe7639e7a32e93b94c36ed3fae from: Alexander Barton date: Sun Jan 23 17:38:36 2011 UTC 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 ... commit - 765dc320f11f117d63e5285a903dfe8af4a48795 commit + 8700f4d93cb50ebe7639e7a32e93b94c36ed3fae blob - 73dd8d1f99fee375edca2d8591e02de1d96f9cac blob + 8af4df95f6957171a42b1432e660266afd7589f4 --- src/ngircd/irc-login.c +++ 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++;