projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed crash in cmd_NeonServ.mod/cmd_neonserv_mode.c
[NeonServV5.git]
/
src
/
modules
/
NeonServ.mod
/
cmd_neonserv_mode.c
diff --git
a/src/modules/NeonServ.mod/cmd_neonserv_mode.c
b/src/modules/NeonServ.mod/cmd_neonserv_mode.c
index 41e0455e11d50fe003358c867bc2b72e6a89e5f2..d153ffa53757f847287afd77f10a692a3411d336 100644
(file)
--- a/
src/modules/NeonServ.mod/cmd_neonserv_mode.c
+++ b/
src/modules/NeonServ.mod/cmd_neonserv_mode.c
@@
-92,6
+92,7
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
arg = 0;
while(arg < argc) {
char *modeStr = argv[arg++];
arg = 0;
while(arg < argc) {
char *modeStr = argv[arg++];
+ char modeStrBuf[3];
for(i = 0; i < strlen(modeStr); i++) {
switch(modeStr[i]) {
case '+':
for(i = 0; i < strlen(modeStr); i++) {
switch(modeStr[i]) {
case '+':
@@
-103,7
+104,8
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
case 'o':
case 'v':
if(arg == argc) {
case 'o':
case 'v':
if(arg == argc) {
- reply(textclient, user, "NS_MODE_INVALID", modeStr[i]);
+ sprintf(modeStrBuf, "%c%c", (add ? '+' : '-'), modeStr[i]);
+ reply(textclient, user, "NS_MODE_INVALID", modeStrBuf);
return;
}
carg = argv[arg++];
return;
}
carg = argv[arg++];
@@
-152,7
+154,8
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
break;
case 'b':
if(arg == argc) {
break;
case 'b':
if(arg == argc) {
- reply(textclient, user, "NS_MODE_INVALID", modeStr[i]);
+ sprintf(modeStrBuf, "%c%c", (add ? '+' : '-'), modeStr[i]);
+ reply(textclient, user, "NS_MODE_INVALID", modeStrBuf);
return;
}
carg = argv[arg++];
return;
}
carg = argv[arg++];
@@
-206,7
+209,8
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
default:
modetype = getModeType(modelock, modeStr[i]);
if(modetype == 0) {
default:
modetype = getModeType(modelock, modeStr[i]);
if(modetype == 0) {
- reply(textclient, user, "NS_MODE_INVALID", modeStr[i]);
+ sprintf(modeStrBuf, "%c%c", (add ? '+' : '-'), modeStr[i]);
+ reply(textclient, user, "NS_MODE_INVALID", modeStrBuf);
return;
}
if(isModeAffected(modelock, modeStr[i]) && add == !isModeSet(modelock, modeStr[i]) && uaccess < db_enfmodes) {
return;
}
if(isModeAffected(modelock, modeStr[i]) && add == !isModeSet(modelock, modeStr[i]) && uaccess < db_enfmodes) {
@@
-220,7
+224,7
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
}
if(add && (modetype & CHANNEL_MODE_TYPE) != CHANNEL_MODE_TYPE_D) {
if(arg == argc) {
}
if(add && (modetype & CHANNEL_MODE_TYPE) != CHANNEL_MODE_TYPE_D) {
if(arg == argc) {
- reply(textclient, user, "NS_MODE_INVALID", modeStr
[i]
);
+ reply(textclient, user, "NS_MODE_INVALID", modeStr);
return;
}
carg = argv[arg++];
return;
}
carg = argv[arg++];
@@
-250,7
+254,7
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
}
} else if(!add && (modetype & CHANNEL_MODE_TYPE) == CHANNEL_MODE_TYPE_B) {
if(arg == argc && !(modetype & CHANNEL_MODE_KEY)) {
}
} else if(!add && (modetype & CHANNEL_MODE_TYPE) == CHANNEL_MODE_TYPE_B) {
if(arg == argc && !(modetype & CHANNEL_MODE_KEY)) {
- reply(textclient, user, "NS_MODE_INVALID", modeStr
[i]
);
+ reply(textclient, user, "NS_MODE_INVALID", modeStr);
return;
}
carg = (arg == argc ? NULL : argv[arg++]);
return;
}
carg = (arg == argc ? NULL : argv[arg++]);
@@
-278,7
+282,7
@@
static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS
modeBufferSimpleMode(modeBuf, add, modeStr[i]);
}
} else {
modeBufferSimpleMode(modeBuf, add, modeStr[i]);
}
} else {
- reply(textclient, user, "NS_MODE_INVALID", modeStr
[i]
);
+ reply(textclient, user, "NS_MODE_INVALID", modeStr);
return;
}
}
return;
}
}