From e56f8ad294d269bcb918c15168bf7b0c4f858fb4 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 3 Apr 2020 22:46:35 +0200 Subject: [PATCH] blaze822: blaze822_addr: null-terminate ttok at the current position before appending --- blaze822.c | 1 + t/1501-maddr-regress.t | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/blaze822.c b/blaze822.c index 0434d89..d34a4ae 100644 --- a/blaze822.c +++ b/blaze822.c @@ -277,6 +277,7 @@ blaze822_addr(char *s, char **dispo, char **addro) if (memchr(tok, '@', c - tok)) not_addr = 1; // @ inside "" is never an addr + *tc = 0; tc += safe_append(ttok, sizeof ttok, tok, c); } else if (*s == '(') { char *z = skip_comment(s); diff --git a/t/1501-maddr-regress.t b/t/1501-maddr-regress.t index 37b592a..4e6be77 100755 --- a/t/1501-maddr-regress.t +++ b/t/1501-maddr-regress.t @@ -1,7 +1,7 @@ #!/bin/sh cd ${0%/*} . ./lib.sh -plan 31 +plan 33 check_addr() { printf "From: %s\n" "$1" | check_test "parse $1" = "$2" "maddr /dev/stdin" @@ -46,3 +46,6 @@ check_addr 'test."test"@example.org' 'test.test@example.org' check_addr '' 'test.test@example.org' check_addr 'test"test"@example.org' 'testtest@example.org' check_addr '' 'testtest@example.org' + +check_addr 'foo' 'foo ' +check_addr 'xxxxxxxxx a"test"@example.org' "xxxxxxxxx "