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 <amerey@redhat.com>
/* 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;