From 3ff97869c4cfacae8d39b001b64d9d7eaf640a9a Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Fri, 10 Sep 2004 14:50:39 +0000 Subject: [PATCH] Fix msg_tree_parse() to not confuse 0 (the digit) with P (the letter). git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1106 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- ChangeLog | 5 +++++ ircd/parse.c | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index fc2fd96..4641716 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-09-10 Michael Poole + + * ircd/parse.c (msg_tree_parse): Reject commands that contain + non-alphanumeric characters. + 2004-09-09 Michael Poole * config.h.in: Remove duplicated and unused macro definitions. diff --git a/ircd/parse.c b/ircd/parse.c index d2343d7..7288752 100644 --- a/ircd/parse.c +++ b/ircd/parse.c @@ -731,12 +731,11 @@ msg_tree_parse(char *cmd, struct MessageTree *root) { struct MessageTree *mtree; - for (mtree = root->pointers[(*cmd++) & (MAXPTRLEN-1)]; - mtree != NULL; - mtree = mtree->pointers[(*cmd++) & (MAXPTRLEN-1)]) - { - if ((mtree->msg != NULL) && (*cmd == '\0')) - return mtree->msg; + for (mtree = root; mtree; mtree = mtree->pointers[(*cmd++) & (MAXPTRLEN-1)]) { + if (*cmd == '\0' && mtree->msg) + return mtree->msg; + else if (!IsAlpha(*cmd)) + return NULL; } return NULL; } -- 2.20.1