From: Alan Modra Date: Thu, 11 Apr 2024 23:25:02 +0000 (+0930) Subject: Re: Fix null pointer dereference in process_debug_info() X-Git-Tag: gdb-15-branchpoint~425 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0f8adbf77dd3f40e74529fa989dca034c73a7273;p=thirdparty%2Fbinutils-gdb.git Re: Fix null pointer dereference in process_debug_info() read_bases has a potential null-pointer deref too, and without a debug_info_p there isn't any point in calling read_bases. * dwarf.c (process_debug_info): Don't call read_bases when debug_info_p is NULL. --- diff --git a/binutils/dwarf.c b/binutils/dwarf.c index ce508d0315f..3ce79f4e5d1 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -4236,7 +4236,7 @@ process_debug_info (struct dwarf_section * section, Only needed for the top DIE on DWARFv5+. No simiar treatment for loclists_base because there should be no loclist attributes in top DIE. */ - if (compunit.cu_version >= 5 && level == 0) + if (debug_info_p && compunit.cu_version >= 5 && level == 0) { int64_t stemp; @@ -4248,17 +4248,14 @@ process_debug_info (struct dwarf_section * section, compunit.cu_version, debug_info_p); - if (debug_info_p) + /* This check was in place before, keep it. */ + stemp = debug_info_p->rnglists_base; + if (stemp < 0) { - /* This check was in place before, keep it. */ - stemp = debug_info_p->rnglists_base; - if (stemp < 0) - { - warn (_("CU @ %#" PRIx64 " has has a negative rnglists_base " - "value of %#" PRIx64 " - treating as zero"), - debug_info_p->cu_offset, stemp); - debug_info_p->rnglists_base = 0; - } + warn (_("CU @ %#" PRIx64 " has has a negative rnglists_base " + "value of %#" PRIx64 " - treating as zero"), + debug_info_p->cu_offset, stemp); + debug_info_p->rnglists_base = 0; } }