diff --git a/core/busybox/checksums b/core/busybox/checksums index bcf35f67..14d8255d 100644 --- a/core/busybox/checksums +++ b/core/busybox/checksums @@ -7,7 +7,7 @@ f0e17fefc0af6b10205d72b242b6ef7481a58ff07726c62890ebc5893b96a396 73be7b16dcff44e88eb48696522794f529beddf9d5a139b8a76cc8685a9f6fc8 d70c4cd6381baeb3836c0387f53553021b48bdc851de49f1c86d836f7d0355fc b030d6ac2b3284cf3cc0a2eec886d26b7e09ea59feb460a6a09165da62a582b4 -48ed5f360cad111e8fe17c8eea8e65d1d54b96209e9a5a73835ae6681aeb2355 +8a5a225a5ae6fbd98718c720aa6f57826d5040b8eaa25e45bb79a109b54cfb15 c8a6fc95a75fa355d570c14e214d68a618e060a486b824b83b5140b9c6a894a7 5f3d6cbdc7060deab644555201365e6dd15ffed07d341532c3d82a170e95c0bd 423c3a67ad56b290ef73440cb748dbc3c6ee2ec486683b5e19242a804db8085b diff --git a/core/busybox/patches/awk-fix-%%.patch b/core/busybox/patches/awk-fix-%%.patch index 70b04331..bb23239b 100644 --- a/core/busybox/patches/awk-fix-%%.patch +++ b/core/busybox/patches/awk-fix-%%.patch @@ -1,10 +1,31 @@ + +Upstream commit: + + awk: fix read beyond end of buffer + Commit 7d06d6e18 (awk: fix printf %%) can cause awk printf to read + beyond the end of a strduped buffer: + + 2349 while (*f && *f != '%') + 2350 f++; + 2351 c = *++f; + + If the loop terminates because a NUL character is detected the + character after the NUL is read. This can result in failures + depending on the value of that character. + + function old new delta + awk_printf 672 665 -7 + + Signed-off-by: Ron Yorston + Signed-off-by: Denys Vlasenko + diff --git a/editors/awk.c b/editors/awk.c index 3adbca7..02c26d7 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -2346,12 +2346,21 @@ static char *awk_printf(node *n, size_t *len) size_t slen; - + s = f; - while (*f && (*f != '%' || *++f == '%')) - f++;