about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-01 22:18:23 -0400
committerJune McEnroe <june@causal.agency>2020-08-01 22:18:58 -0400
commitbd8997ef09c7cf51d20c124e608601fab32f8f2a (patch)
tree3f2f508465c9c5503648393f7f50a27b985b215e
parentUse ldd to automatically copy libs into chroot (diff)
downloadcatgirl-bd8997ef09c7cf51d20c124e608601fab32f8f2a.tar.gz
catgirl-bd8997ef09c7cf51d20c124e608601fab32f8f2a.zip
Check return value of asprintf
On the awful operating system GNU, asprintf leaves the destination
pointer UNDEFINED on failure.
-rw-r--r--ignore.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ignore.c b/ignore.c
index 7fecb16..d53d138 100644
--- a/ignore.c
+++ b/ignore.c
@@ -45,17 +45,19 @@ const char *ignoreAdd(const char *pattern) {
 		if (*ch == ' ') sp++;
 	}
 	char **dest = &ignore.patterns[ignore.len++];
+	int n = 0;
 	if (!ex && !sp) {
-		asprintf(dest, "%s!*@* * * *", pattern);
+		n = asprintf(dest, "%s!*@* * * *", pattern);
 	} else if (sp < 1) {
-		asprintf(dest, "%s * * *", pattern);
+		n = asprintf(dest, "%s * * *", pattern);
 	} else if (sp < 2) {
-		asprintf(dest, "%s * *", pattern);
+		n = asprintf(dest, "%s * *", pattern);
 	} else if (sp < 3) {
-		asprintf(dest, "%s *", pattern);
+		n = asprintf(dest, "%s *", pattern);
 	} else {
 		*dest = strdup(pattern);
 	}
+	if (n < 0) err(EX_OSERR, "asprintf");
 	if (!*dest) err(EX_OSERR, "strdup");
 	return *dest;
 }
r class='logheader'>2019-10-28Specify when command is allowed in Handlers listJune McEnroe 2019-10-28Disallow PRIVMSG/NOTICE before registrationJune McEnroe 2019-10-28Move entire login flow to state and reorganize itJune McEnroe 2019-10-27Wait for SASL success before sending CAP ENDJune McEnroe Also refuse to continue logging in if SASL authentication fails. I should really just move all of log in and authentication from server.c to state.c... 2019-10-27Only increment consumer after successful sendJune McEnroe 2019-10-27Set SO_REUSEADDR on bindsJune McEnroe 2019-10-27Output ring info on SIGINFOJune McEnroe 2019-10-27Improve client/server error messagesJune McEnroe 2019-10-27Add reload cmd to rc scriptJune McEnroe Using daemon(8) makes this way more awkward than it should be. 2019-10-27Reload certificate on SIGUSR1June McEnroe 2019-10-27Drop clients on zero-length readsJune McEnroe 2019-10-27Explicitly tls_handshake new clientsJune McEnroe This prevents a client connecting, sending nothing, and getting blocked in tls_read immediately. 2019-10-26Document rationaleJune McEnroe 2019-10-26Handle nick collisionJune McEnroe 2019-10-26Wait for AUTHENTICATE + from serverJune McEnroe 2019-10-26Respond to PING with same parameterJune McEnroe 2019-10-26Add undocumented flag to disable verificationJune McEnroe 2019-10-26Do not require RPL_ISUPPORT for stateReadyJune McEnroe 2019-10-26Implement graceful shutdownJune McEnroe 2019-10-26Require PASS before USERJune McEnroe Prevent creating a ring consumer without authentication. 2019-10-26Track channel topicsJune McEnroe 2019-10-26Set AWAY when no clients are connectedJune McEnroe 2019-10-26Add flags to request TOPIC and NAMES on client connectJune McEnroe 2019-10-26OopsJune McEnroe 2019-10-26Disconnect client on unknown commandJune McEnroe During registration, no other commands should be sent. Afterwards, only intercepted commands will get parsed. 2019-10-26Allow reading sensitive information from filesJune McEnroe 2019-10-26Add rc scriptJune McEnroe 2019-10-25Add install and uninstall targetsJune McEnroe 2019-10-25Expand documentationJune McEnroe 2019-10-25Add AGPLv3 notice on client registrationJune McEnroe OwO 2019-10-25Rename project pounceJune McEnroe