summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-05 13:17:38 -0400
committerJune McEnroe <june@causal.agency>2020-04-05 13:17:38 -0400
commit1969c9125fbde0d420c22cebc7578b4473a7aac0 (patch)
tree63d81583acb6f6877aaf3a41f9de9949717d1ec6
parentError on invalid ISUPPORT values (diff)
downloadcatgirl-1969c9125fbde0d420c22cebc7578b4473a7aac0.tar.gz
catgirl-1969c9125fbde0d420c22cebc7578b4473a7aac0.zip
Error on missing MODE parameters
Diffstat (limited to '')
-rw-r--r--handle.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/handle.c b/handle.c
index 8e91810..0719754 100644
--- a/handle.c
+++ b/handle.c
@@ -677,7 +677,9 @@ static void handleMode(struct Message *msg) {
 		if (!name) name = "";
 
 		if (strchr(network.prefixModes, *ch)) {
-			assert(i < ParamCap);
+			if (i >= ParamCap || !msg->params[i]) {
+				errx(EX_PROTOCOL, "MODE missing %s parameter", mode);
+			}
 			char *nick = msg->params[i++];
 			char prefix = network.prefixes[
 				strchr(network.prefixModes, *ch) - network.prefixModes
@@ -696,7 +698,9 @@ static void handleMode(struct Message *msg) {
 		}
 
 		if (strchr(network.listModes, *ch)) {
-			assert(i < ParamCap);
+			if (i >= ParamCap || !msg->params[i]) {
+				errx(EX_PROTOCOL, "MODE missing %s parameter", mode);
+			}
 			char *mask = msg->params[i++];
 			if (*ch == 'b') {
 				verb = (set ? "bans" : "unbans");
@@ -727,7 +731,9 @@ static void handleMode(struct Message *msg) {
 		}
 
 		if (strchr(network.paramModes, *ch)) {
-			assert(i < ParamCap);
+			if (i >= ParamCap || !msg->params[i]) {
+				errx(EX_PROTOCOL, "MODE missing %s parameter", mode);
+			}
 			char *param = msg->params[i++];
 			uiFormat(
 				id, Cold, tagTime(msg),
@@ -742,7 +748,9 @@ static void handleMode(struct Message *msg) {
 		}
 
 		if (strchr(network.setParamModes, *ch) && set) {
-			assert(i < ParamCap);
+			if (i >= ParamCap || !msg->params[i]) {
+				errx(EX_PROTOCOL, "MODE missing %s parameter", mode);
+			}
 			char *param = msg->params[i++];
 			uiFormat(
 				id, Cold, tagTime(msg),
it/bin/title.c?id=c4fe9d66d52876be85c6b61b1f36f47ecc819f19&follow=1'>Revert "Enable cookies in title"June McEnroe 2019-09-20Enable cookies in titleJune McEnroe 2019-09-16Use sensitivity aliases in TF2June McEnroe 2019-09-16Add The Just CityJune McEnroe 2019-09-12Only GET the final redirect locationJune McEnroe 2019-09-12Consume entire bodyJune McEnroe 2019-09-10Add title -v flagJune McEnroe 2019-09-10Use curl error bufferJune McEnroe 2019-09-10Set Accept-Encoding in titleJune McEnroe 2019-09-08Set title User-AgentJune McEnroe 2019-09-07Add -x flag to titleJune McEnroe 2019-09-07Ignore SIGPIPE in relayJune McEnroe 2019-09-07Add A Memory Called EmpireJune McEnroe 2019-09-05Handle lack of Content-TypeJune McEnroe 2019-09-05Use CURLINFO_CONTENT_TYPEJune McEnroe 2019-09-05Decode entities in titlesJune McEnroe 2019-09-05Print title as soon as it's availableJune McEnroe 2019-09-05Use CURL_PREFIX to set flagsJune McEnroe 2019-09-05Add titleJune McEnroe 2019-09-04Add Avorter n'est pas tuerJune McEnroe 2019-08-29Unset executable on shell scriptsJune McEnroe 2019-08-29Add long-missing setopt to bin.7June McEnroe 2019-08-29Add editJune McEnroe