summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--handle.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/handle.c b/handle.c
index a8f054c..7b9835f 100644
--- a/handle.c
+++ b/handle.c
@@ -208,13 +208,13 @@ static void handleAuthenticate(struct Message *msg) {
 		return;
 	}
 
-	byte buf[299];
+	byte buf[299] = {0};
 	size_t len = 1 + strlen(self.plain);
-	if (sizeof(buf) < len) errx(EX_CONFIG, "SASL PLAIN is too long");
-	buf[0] = 0;
-	for (size_t i = 0; self.plain[i]; ++i) {
-		buf[1 + i] = (self.plain[i] == ':' ? 0 : self.plain[i]);
-	}
+	if (sizeof(buf) < len) errx(EX_USAGE, "SASL PLAIN is too long");
+	memcpy(&buf[1], self.plain, len - 1);
+	byte *sep = memchr(buf, ':', len);
+	if (!sep) errx(EX_USAGE, "SASL PLAIN missing colon");
+	*sep = 0;
 
 	char b64[BASE64_SIZE(sizeof(buf))];
 	base64(b64, buf, len);
d colspan='3' class='logmsg'> My system is probably such a mess now... 2020-09-11Add debian VM name to sshJune McEnroe 2020-09-11Add influencer tweetJune McEnroe 2020-09-10Add The Kingdom of GodsJune McEnroe Reading has really slowed down :( 2020-09-07Add SunglassesJune McEnroe An IRC find. 2020-09-06Add Between the BreathsJune McEnroe One of those good songs from a soundtrack of a film that probably isn't? The summary sounds a lot more interesting than the title implies, at least. 2020-09-04Open /dev/tty in nudgeJune McEnroe This makes it work even when it's run connected to a pipe, i.e. as the notify command of catgirl... 2020-09-04Add nudgeJune McEnroe 2020-09-03Build fbclock with -lzJune McEnroe I guess this got lost somewhere, long ago... 2020-08-29Add tweets from retweetsJune McEnroe