summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-12-21 06:35:51 -0500
committerJune McEnroe <june@causal.agency>2019-12-21 06:35:51 -0500
commit9059861edf2ba68c5ea356918a0347323c9f0d2b (patch)
treee945a6127911d1739991c17f9a7ff0148cc64eca
parentAdd copy of GPL (diff)
downloadimbox-9059861edf2ba68c5ea356918a0347323c9f0d2b.tar.gz
imbox-9059861edf2ba68c5ea356918a0347323c9f0d2b.zip
Null-terminate read literals
No wonder there was garbage... Silly mistake!
Diffstat (limited to '')
-rw-r--r--imbox.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/imbox.c b/imbox.c
index 9f46983..1712615 100644
--- a/imbox.c
+++ b/imbox.c
@@ -65,8 +65,6 @@ static void mboxrd(const char *headers, const char *body) {
 	);
 
 	printf("%s", headers);
-	// FIXME: There seems to sometimes be some garbage data at the end of the
-	// headers?
 
 	static regex_t quoteRegex;
 	compile(&quoteRegex, "^>*From ");
@@ -161,12 +159,13 @@ static char *readLiteral(FILE *imap, const char *line) {
 	size_t size = strtoul(prefix + 1, NULL, 10);
 	if (!size) errx(EX_PROTOCOL, "invalid literal size");
 
-	char *literal = malloc(size);
+	char *literal = malloc(size + 1);
 	if (!literal) err(EX_OSERR, "malloc");
 
 	size_t count = fread(literal, size, 1, imap);
 	if (!count) errx(EX_PROTOCOL, "could not read literal");
 
+	literal[size] = '\0';
 	return literal;
 }
 
>June McEnroe 2019-02-25Update tag colorsJune McEnroe 2019-02-25Add color to tagsJune McEnroe 2019-02-25Remove tag X macros againJune McEnroe 2019-02-25Add M-a to switch to hot or unread windowJune McEnroe 2019-02-25Refactor uiReadJune McEnroe 2019-02-24Scroll by full pages with PageUp/PageDownJune McEnroe 2019-02-23Clarify /window documentationJune McEnroe 2019-02-23Use first word of params in input commandsJune McEnroe 2019-02-23Add C-n and C-p key bindings to switch windowsJune McEnroe 2019-02-23Change example command to join #ascii.town on freenodeJune McEnroe 2019-02-23Call def_prog_mode after termNoFlowJune McEnroe 2019-02-22Move IRC formatting reset to C-sJune McEnroe 2019-02-22Disable terminal flow controlJune McEnroe 2019-02-22Bind up and down arrows to scrollJune McEnroe 2019-02-22Remove topic TODOJune McEnroe 2019-02-22Add /znc commandJune McEnroe 2019-02-22Update status line after scrolling and term eventsJune McEnroe 2019-02-22Reorganize input.cJune McEnroe 2019-02-22Fix name of <raw> window in man pageJune McEnroe 2019-02-22Rename global tags with angle bracketsJune McEnroe 2019-02-22Show status window while connectingJune McEnroe 2019-02-22Reorganize UI code for the umpteenth timeJune McEnroe 2019-02-21Replace "view" with "window"June McEnroe 2019-02-21Remove ROT13June McEnroe 2019-02-21Clean up man pageJune McEnroe 2019-01-26Draw UI before connectingJune McEnroe 2019-01-25Avoid unused variable warnings with getyxJune McEnroe 2019-01-25Add GNU/Linux build instructionsJune McEnroe