summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_resource.c
diff options
context:
space:
mode:
authorschwarze <schwarze@openbsd.org>2014-12-19 04:57:11 +0000
committerschwarze <schwarze@openbsd.org>2014-12-19 04:57:11 +0000
commit52a7f4662432db837ecf4c838b4be59349e5f106 (patch)
tree24e8b6acc4769d14ce05a77e8bfead8f04f14efd /sys/kern/kern_resource.c
parentMake use of m_defrag() in re_encap(). (diff)
downloadwireguard-openbsd-52a7f4662432db837ecf4c838b4be59349e5f106.tar.xz
wireguard-openbsd-52a7f4662432db837ecf4c838b4be59349e5f106.zip
Rewrite the low-level UTF-8 parser from scratch.
It accepted invalid byte sequences like 0xc080-c1bf, 0xe08080-e09fbf, 0xeda080-edbfbf, and 0xf0808080-f08fbfbf, produced valid roff Unicode escape sequences from them, and the algorithm contained strong defenses against any attempt to fix it. This cures an assertion failure in the terminal formatter caused by sneaking in ASCII 0x08 (backspace) by "encoding" it as an (invalid) multibyte UTF-8 sequence, found by jsg@ with afl. As a bonus, the new algorithm also reduces the code in the function by about 20%.
Diffstat (limited to 'sys/kern/kern_resource.c')
0 files changed, 0 insertions, 0 deletions