From: Aaron Merey Date: Thu, 14 May 2026 21:12:59 +0000 (-0400) Subject: dwarf_getsrclines.c: Restore initialization of debug_str_offset X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=e9fe6b1e2c73c78665537460400dd6385877daff;p=thirdparty%2Felfutils.git dwarf_getsrclines.c: Restore initialization of debug_str_offset Prior to commit d4b0848b ("libdw: dwarf_getsrcfiles should not imply dwarf_getsrclines") debug_str_offset was initialized with a default value of 0. This default initialization was removed as part of the refactor introduced in d4b0848b. Restore debug_str_offset's default initialization to 0. For a well-formed binary, it wasn't possible to use debug_str_offset uninitialized. The value is only relevant for line headers using NVIDIA's CUBIN extension, in which case the real offset was always stored in debug_str_offset before use. However it's possible for a malformed binary to cause uninitialized use and static analyzers may complain about this. Signed-off-by: Aaron Merey --- diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c index b3fe7cc8..35215119 100644 --- a/libdw/dwarf_getsrclines.c +++ b/libdw/dwarf_getsrclines.c @@ -279,6 +279,10 @@ read_line_header (Dwarf *dbg, unsigned address_size, /* The opcode base. */ lh->opcode_base = *linep++; + /* If the line header uses the NVIDIA CUBIN extension, debug_str_offset's + actual value will be read from the last 4 bytes of the header. */ + lh->debug_str_offset = 0; + /* Remember array with the standard opcode length (-1 to account for the opcode with value zero not being mentioned). */ lh->standard_opcode_lengths = linep - 1;