From: John Baldwin Date: Tue, 18 Sep 2018 21:05:47 +0000 (-0700) Subject: Use KF_PATH to verify the size of a struct kinfo_file. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9f235e09e4d3dc6820e2d667200fe09b3e73b623;p=binutils-gdb.git 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. --- 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)