From 550bec4fdef888873e595b63fd1af9cbc749b114 Mon Sep 17 00:00:00 2001 From: Kyle Evans Date: Wed, 19 Feb 2020 14:32:55 +0000 Subject: [PATCH] kdump: decode SHM_ANON as first arg to legacy shm_open(2) The first argument to shm_open(2) as well as shm_open2(2) may be a path or SHM_ANON. Decode SHM_ANON, at least- paths will show up as namei results in kdump output, which may be sufficient; in those cases, we'll have printed an address. Future commits will add support for shm_open2() to libsysdecode/truss/kdump. Reported by: kaktus MFC after: 3 days --- usr.bin/kdump/kdump.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c index 3319d2f06607..3c7e126bb33d 100644 --- a/usr.bin/kdump/kdump.c +++ b/usr.bin/kdump/kdump.c @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1248,7 +1249,12 @@ ktrsyscall(struct ktr_syscall *ktr, u_int sv_flags) break; #ifdef SYS_freebsd12_shm_open case SYS_freebsd12_shm_open: - print_number(ip, narg, c); + if (ip[0] == (uintptr_t)SHM_ANON) { + printf("(SHM_ANON"); + ip++; + } else { + print_number(ip, narg, c); + } putchar(','); print_mask_arg(sysdecode_open_flags, ip[0]); putchar(',');