repo: ngircd action: commit revision: path_from: revision_from: 8700f4d93cb50ebe7639e7a32e93b94c36ed3fae: path_to: revision_to:
commit 8700f4d93cb50ebe7639e7a32e93b94c36ed3fae Author: Alexander BartonDate: Sun Jan 23 18:38:36 2011 +0100 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
--- 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++;
-----END OF PAGE-----