summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-26 02:28:35 -0500
committerJune McEnroe <june@causal.agency>2020-02-26 02:37:10 -0500
commitfe437b2ea18df5ecd1baa5086ccc1e866af21df5 (patch)
tree55084737d377d8f99d38fa7cc46868a90975d5aa
parentAdd time tag to lines missing it (diff)
downloadpounce-fe437b2ea18df5ecd1baa5086ccc1e866af21df5.tar.gz
pounce-fe437b2ea18df5ecd1baa5086ccc1e866af21df5.zip
Tweak buffer sizes
Filter functions are dealing with lines not including CRLF, so they
already have extra space. serverFormat is using snprintf which wants to
always write a NUL at the end of the string.
-rw-r--r--client.c6
-rw-r--r--server.c2
2 files changed, 4 insertions, 4 deletions
diff --git a/client.c b/client.c
index 9b55fdd..2405004 100644
--- a/client.c
+++ b/client.c
@@ -426,7 +426,7 @@ static const char *filterChghost(const char *line) {
 static const char *filterExtendedJoin(const char *line) {
 	if (wordcmp(line, 1, "JOIN")) return line;
 	static regex_t regex;
-	static char buf[MessageCap + 1];
+	static char buf[MessageCap];
 	return snip(buf, sizeof(buf), line, compile(&regex, "(JOIN [^ ]+).+"));
 }
 
@@ -440,7 +440,7 @@ static const char *filterMessageTags(const char *line) {
 }
 
 static const char *filterMultiPrefix(const char *line) {
-	static char buf[MessageCap + 1];
+	static char buf[MessageCap];
 	if (!wordcmp(line, 1, "352")) {
 		static regex_t regex;
 		return snip(
@@ -461,7 +461,7 @@ static const char *filterMultiPrefix(const char *line) {
 static const char *filterUserhostInNames(const char *line) {
 	if (wordcmp(line, 1, "353")) return line;
 	static regex_t regex;
-	static char buf[MessageCap + 1];
+	static char buf[MessageCap];
 	return snip(
 		buf, sizeof(buf), line,
 		compile(&regex, "( :?[^!]+)![^ ]+")
diff --git a/server.c b/server.c
index abc7d40..20d94e3 100644
--- a/server.c
+++ b/server.c
@@ -139,7 +139,7 @@ void serverSend(const char *ptr, size_t len) {
 }
 
 void serverFormat(const char *format, ...) {
-	char buf[MessageCap];
+	char buf[MessageCap + 1];
 	va_list ap;
 	va_start(ap, format);
 	int len = vsnprintf(buf, sizeof(buf), format, ap);
5437e3afeea78942c601691e6&follow=1'>Save input buffer contentsJune McEnroe 2022-02-20Share a cut buffer between all edit buffersJune McEnroe 2022-02-20Assert return values in edit testsJune McEnroe 2022-02-20Move mbs out of struct Edit, use a global bufferJune McEnroe 2022-02-20Clear edit buffer before running commandJune McEnroe 2022-02-20Show indicator in status when window has pending inputJune McEnroe 2022-02-20Use separate edit buffers for each IDJune McEnroe 2022-02-20Make sure new cap is actually larger than new lengthJune McEnroe 2022-02-20Remove unused mbs.len field from struct EditJune McEnroe 2022-02-19Remove unneeded includes in ui.cJune McEnroe 2022-02-19Reimplement tab completeJune McEnroe 2022-02-19Handle errors from editFn, etc.June McEnroe 2022-02-19Reimplement text macrosJune McEnroe 2022-02-19Factor out input handling to input.cJune McEnroe 2022-02-19Factor out window management to window.cJune McEnroe 2022-02-19Enable -Wmissing-prototypesJune McEnroe 2022-02-19Fix edit.[ch] license notice additional permissionsJune McEnroe 2022-02-19Run line editing testsJune McEnroe 2022-02-18Implement new line editing "library"June McEnroe 2022-02-18Simplify cursor positioning in inputJune McEnroe 2022-02-18Fix M-f orderingJune McEnroe 2022-02-12Move sandman build to scripts/MakefileJune McEnroe 2022-02-12Use compat_readpassphrase.c on LinuxJune McEnroe 2022-02-12Copy RPP defines from oconfigureJune McEnroe