offchannel fixes; more memory verification
[srvx.git] / src / proto-p10.c
index a237bfaf45fb2b436ec17582be67dd104cc9487b..f602a98a958cc99c9c6ee4b4a77ff1a7b6de2209 100644 (file)
@@ -2085,7 +2085,14 @@ mod_chanmode_parse(struct chanNode *channel, char **modes, unsigned int argc, un
         case 'r': do_chan_mode(MODE_REGONLY); break;
         case 's': do_chan_mode(MODE_SECRET); break;
         case 't': do_chan_mode(MODE_TOPICLIMIT); break;
-        case 'z': do_chan_mode(MODE_REGISTERED); break;
+       case 'z':
+         if (!(flags & MCP_REGISTERED)) {
+          do_chan_mode(MODE_REGISTERED);
+         } else {
+          mod_chanmode_free(change);
+          return NULL;
+         }
+         break;
 #undef do_chan_mode
         case 'l':
             if (add) {