From 70c104a18f3d409bc6dde950b50258d3d280d99b Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 23 Jul 2020 16:46:09 +0200 Subject: pkg/compiler: fix crash on fmt[flags] Flags with only 1 value 0 are transformed to ConstType. Fmt did not expect that. Fixes #1965 --- sys/test/exec.txt | 6 ++++++ sys/test/test/fmt | 4 ++++ 2 files changed, 10 insertions(+) create mode 100644 sys/test/test/fmt (limited to 'sys/test') diff --git a/sys/test/exec.txt b/sys/test/exec.txt index 6ad985838..bb293e1d0 100644 --- a/sys/test/exec.txt +++ b/sys/test/exec.txt @@ -41,8 +41,14 @@ compare_data [ blob array[int8] arr16be array[int16be] nla array[compare_nla] + fmt0 fmt[oct, int32] + fmt1 fmt[dec, int32] + fmt2 fmt[hex, int32] + fmt3 fmt[dec, flags[flags_with_one_value]] ] [varlen] +flags_with_one_value = 0 + compare_nla [ a0 nlattr[0xaa, int8] a1 nlattr[0xbb, int16] diff --git a/sys/test/test/fmt b/sys/test/test/fmt new file mode 100644 index 000000000..41f584dc9 --- /dev/null +++ b/sys/test/test/fmt @@ -0,0 +1,4 @@ +syz_compare(&AUTO='00000000000000000000123', 0x17, &AUTO=@fmt0=0x53, AUTO) +syz_compare(&AUTO='00000000000000000083', 0x14, &AUTO=@fmt1=0x53, AUTO) +syz_compare(&AUTO='0x0000000000000053', 0x12, &AUTO=@fmt2=0x53, AUTO) +syz_compare(&AUTO='00000000000000000000', 0x14, &AUTO=@fmt3=AUTO, AUTO) -- cgit mrf-deployment