]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Make sure the channel exists before doing anything in OP and VOICE.
authorsplidge <redacted>
Sat, 22 Mar 2008 11:27:55 +0000 (11:27 +0000)
committersplidge <redacted>
Sat, 22 Mar 2008 11:27:55 +0000 (11:27 +0000)
chanserv/chancmds/op.c
chanserv/chancmds/voice.c

index 0bf6d45e73bb4e0f9718a3c5a1b4d2c65c2d913d..f114118cb6f37c1f5ff9347bdd323718f1c613c5 100644 (file)
@@ -81,6 +81,12 @@ int csc_doop(void *source, int cargc, char **cargv) {
     return CMD_ERROR;
 
   rcp=cip->exts[chanservext];
+  
+  /* If the channel doesn't currently exist, forget it. */
+  if (!cip->channel) { 
+    chanservstdmessage(sender, QM_EMPTYCHAN, cip->name->content);  
+    return CMD_ERROR;
+  }
 
   if (cargc==1) {
     /* Only one arg: "op me" */
index b6c4b46895a8c9e03bb026fce11a1c36b3fd9e45..2a4a2bbb6aa782978c5322660e55b17294d39ef4 100644 (file)
@@ -82,6 +82,11 @@ int csc_dovoice(void *source, int cargc, char **cargv) {
   if (!(cip=cs_checkaccess(sender, cargv[0], CA_VOICEPRIV, NULL, "voice", 0, 0)))
     return CMD_ERROR;
 
+  if (!cip->channel) {
+    chanservstdmessage(sender, QM_EMPTYCHAN, cip->name->content);
+    return CMD_ERROR;
+  }
+
   if (cargc==1) {
     /* Only one arg: "voice me" */
     if (!cs_checkaccess(sender, NULL, CA_VOICEPRIV | CA_DEVOICED, cip,