diff options
author | Paul Chaignon <paul.chaignon@gmail.com> | 2025-07-01 22:47:30 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2025-07-02 01:22:46 +0300 |
commit | f8242745871f81a3ac37f9f51853d12854fd0b58 (patch) | |
tree | d50b443e6fc4e8351fc05ba09384ac79a43b3955 /scripts/gdb/linux/vmalloc.py | |
parent | 66701750d5565c574af42bef0b789ce0203e3071 (diff) | |
download | linux-f8242745871f81a3ac37f9f51853d12854fd0b58.tar.xz |
bpf: Reject %p% format string in bprintf-like helpers
static const char fmt[] = "%p%";
bpf_trace_printk(fmt, sizeof(fmt));
The above BPF program isn't rejected and causes a kernel warning at
runtime:
Please remove unsupported %\x00 in format string
WARNING: CPU: 1 PID: 7244 at lib/vsprintf.c:2680 format_decode+0x49c/0x5d0
This happens because bpf_bprintf_prepare skips over the second %,
detected as punctuation, while processing %p. This patch fixes it by
not skipping over punctuation. %\x00 is then processed in the next
iteration and rejected.
Reported-by: syzbot+e2c932aec5c8a6e1d31c@syzkaller.appspotmail.com
Fixes: 48cac3f4a96d ("bpf: Implement formatted output helpers with bstr_printf")
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Paul Chaignon <paul.chaignon@gmail.com>
Link: https://lore.kernel.org/r/a0e06cc479faec9e802ae51ba5d66420523251ee.1751395489.git.paul.chaignon@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'scripts/gdb/linux/vmalloc.py')
0 files changed, 0 insertions, 0 deletions