From 9f235e09e4d3dc6820e2d667200fe09b3e73b623 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 18 Sep 2018 14:05:47 -0700 Subject: [PATCH] Use KF_PATH to verify the size of a struct kinfo_file. fbsd_core_vnode_path needs to use the offset of the kf_path member of struct kinfo_file as the minimum size of a struct kinfo_file object. However, it was using KVE_PATH instead due to a copy and paste bug. While here, fix another copy and paste bug in the error message for a truncated kinfo_file object. gdb/ChangeLog: * fbsd-tdep.c (fbsd_core_vnode_path): Use KF_PATH instead of KVE_PATH. --- gdb/ChangeLog | 5 +++++ gdb/fbsd-tdep.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 328d48eeeb9..2d9316f62cd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-09-18 John Baldwin + + * fbsd-tdep.c (fbsd_core_vnode_path): Use KF_PATH instead of + KVE_PATH. + 2018-09-18 Tom Tromey * compile/compile-object-load.c (struct diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c index ed430871693..48544b5370f 100644 --- a/gdb/fbsd-tdep.c +++ b/gdb/fbsd-tdep.c @@ -781,13 +781,13 @@ fbsd_core_vnode_path (struct gdbarch *gdbarch, int fd) /* Skip over the structure size. */ descdata += 4; - while (descdata + KVE_PATH < descend) + while (descdata + KF_PATH < descend) { ULONGEST structsize; structsize = bfd_get_32 (core_bfd, descdata + KF_STRUCTSIZE); - if (structsize < KVE_PATH) - error (_("malformed core note - vmmap entry too small")); + if (structsize < KF_PATH) + error (_("malformed core note - file structure too small")); if (bfd_get_32 (core_bfd, descdata + KF_TYPE) == KINFO_FILE_TYPE_VNODE && bfd_get_signed_32 (core_bfd, descdata + KF_FD) == fd) -- 2.30.2