X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodcmd.c;h=2e833002ddd5b10e4c310b71917b796fd95d58a2;hb=fe0a9858249e52e8ea685eeb08026fccd6841b21;hp=2ae4db59e59005b6c8149b079ffed66ce3aa8802;hpb=a665c77b6177011b2fabdd3a37d2b942e46d4cc5;p=srvx.git diff --git a/src/modcmd.c b/src/modcmd.c index 2ae4db5..2e83300 100644 --- a/src/modcmd.c +++ b/src/modcmd.c @@ -1,5 +1,5 @@ /* modcmd.c - Generalized module command support - * Copyright 2002-2004 srvx Development Team + * Copyright 2002-2006 srvx Development Team * * This file is part of srvx. * @@ -795,9 +795,10 @@ svccmd_send_help_2(struct userNode *user, struct service *service, const char *t } static int -svccmd_invoke(struct userNode *user, struct service *service, struct chanNode *channel, char *text, int server_qualified) { +svccmd_invoke(struct userNode *user, struct service *service, struct chanNode *channel, const char *text, int server_qualified) { unsigned int argc; char *argv[MAXNUMPARAMS]; + char tmpline[MAXLEN]; if (!*text) return 0; @@ -815,12 +816,13 @@ svccmd_invoke(struct userNode *user, struct service *service, struct chanNode *c return 0; } } - argc = split_line(text, false, ArrayLength(argv), argv); + safestrncpy(tmpline, text, sizeof(tmpline)); + argc = split_line(tmpline, false, ArrayLength(argv), argv); return argc ? svccmd_invoke_argv(user, service, channel, argc, argv, server_qualified) : 0; } void -modcmd_privmsg(struct userNode *user, struct userNode *bot, char *text, int server_qualified) { +modcmd_privmsg(struct userNode *user, struct userNode *bot, const char *text, int server_qualified) { struct service *service; if (!(service = dict_find(services, bot->nick, NULL))) { @@ -885,7 +887,7 @@ modcmd_privmsg(struct userNode *user, struct userNode *bot, char *text, int serv } void -modcmd_chanmsg(struct userNode *user, struct chanNode *chan, char *text, struct userNode *bot) { +modcmd_chanmsg(struct userNode *user, struct chanNode *chan, const char *text, struct userNode *bot) { struct service *service; if (!(service = dict_find(services, bot->nick, NULL))) return; svccmd_invoke(user, service, chan, text, 0);