modified: bugxml/readbugs.py
Fixed an incorrect length check to prevent a crash.
modified: dwarfdump/print_frames.c
Set a macro structure field that was left unset.
No longer creates a zero-length malloc field.
modified: libdwarf/dwarf_macro5.c
More like other configure setups.
dwarfdump/configure.in
Regenerate.
dwarfdump/configure
Fix spelling mistakes, and an erroneous . in column 1.
dwarfdump/dwarfdump.1
CFLAGS is no on HOST_CFLAGS.
libdwarf/Makefile.in
Improve the output with respect to things tested.
More like other configure setups.
libdwarf/configure.in
Regenerate.
libdwarf/configure
* print_die.c: Fix typo in error message.
* print_frames.c: Do additional checks for incorrect data
when printing frame instructions to avoid dwarfdump crash..
libdwarf
* dwarf_form.c: Directly check expression length against
section length in case expression length very very large.
* dwarf_query.c: _dwarf_calculate_info_section_*() routines
made clearer and the *_start_ptr() instance also now returns
the length (via a pointer arg).
* dwarf_xu_index.c: Check data read from the section so
a wildly large columns count or slots count will be caught
and an error returned.
bugxml/data.txt
Fix indents, remove trailing whitespace.
dwarfdump/print_abbrevs.c
dwarfdump/print_aranges.c
dwarfdump/print_frames.c
dwarfdump/print_sections.c
Ensure we check dwarf functtion status return.
These sources used only at build time.
dwarfdump/tag_attr.c
dwarfdump/tag_tree.c
Moved a couple functions between source files
and made them static. A couple commentary changes.
print_frames.c, though, needed hardening against
corrupt frame data.
dwarfdump/globals.h
dwarfdump/print_aranges.c
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_sections.c
All data reads from an object ensure the
read is actually in a section.
It is always possible something was overlooked, but
all the reading macros and functions now do checks.
libdwarf/dwarf_arange.c
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_form.c
libdwarf/dwarf_frame.c
libdwarf/dwarf_frame2.c
libdwarf/dwarf_global.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line_table_reader_common.c
libdwarf/dwarf_loc.c
libdwarf/dwarf_loc2.c
libdwarf/dwarf_macro5.c
libdwarf/dwarf_opaque.h
libdwarf/dwarf_print_lines.c
libdwarf/dwarf_query.c
libdwarf/dwarf_ranges.c
libdwarf/dwarf_util.c
libdwarf/dwarf_util.h
libdwarf/dwarf_xu_index.c
libdwarf/libdwarf.h.in
bugxml/data.txt
Now prints strings so that
control characters do not
cause problems. Easier to read too.
dwarfdump/Makefile.in
dwarfdump/NEWS
dwarfdump/dwarfdump.1
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_lines.c
dwarfdump/print_macro.c
dwarfdump/print_macros.c
dwarfdump/sanitized.c
Removed trailing whitespace.
dwarfexample/simplereader.c
New checking for corrupt input.
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_form.c
libdwarf/dwarf_line.c
libdwarf/dwarf_opaque.h
libdwarf/dwarf_query.c
libdwarf/dwarf_util.h
libdwarf/libdwarf.h.in
standard tables: header says lno now,
for line number (row was incorrect).
dwarfdump/dwarfdump.c
dwarfdump/print_die.c
dwarfdump/print_lines.c
New checks for correctness and section overrun.
Fixed duplicate free due to bug in DWARF5 macro
handling.
libdwarf/dwarf_arange.c
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_elf_access.c
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_frame2.c
libdwarf/dwarf_leb.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line.h
libdwarf/dwarf_line_table_reader_common.c
libdwarf/dwarf_macro5.c
libdwarf/dwarf_util.h
libdwarf/libdwarf.h.in
dwarfdump/dwarfdump.c
Ensure dependency on dwarf_errmsg_list.c
libdwarf/Makefile.in
Do much much more testing to ensure we do not
run off the end of section or accept a bogus
leb number.
libdwarf/dwarf_abbrev.c
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_frame.c
libdwarf/dwarf_frame.h
libdwarf/dwarf_frame2.c
libdwarf/dwarf_frame3.c
libdwarf/dwarf_leb.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line.h
libdwarf/dwarf_line_table_reader_common.c
libdwarf/dwarf_opaque.h
libdwarf/dwarf_query.c
libdwarf/dwarf_util.c
libdwarf/dwarf_util.h
libdwarf/libdwarf.h.in
and just use char*.
Ensure the getopt tests still work.
modified: dwarfdump/dwarfdump.c
modified: dwarfdump/dwgetopt.c
modified: dwarfdump/esb.c
modified: dwarfdump/esb.h
modified: dwarfdump/getopttest.c
modified: dwarfdump/globals.h
modified: dwarfdump/print_die.c
modified: dwarfdump/print_frames.c
modified: dwarfdump/print_lines.c
modified: dwarfdump/print_strings.c
modified: dwarfdump/tag_attr.c
modified: dwarfdump/tag_tree.c
Fixing errnumber->string array and arranging
that we test it during build.
modified: libdwarf/Makefile.in
renamed: libdwarf/dwarf_error.c -> libdwarf/dwarf_errmsg_list.c
modified: libdwarf/dwarf_error.c
because the default internal buffer size (240), was big enough
to receive the resulting output.
esb.c, esb.h:
* Missing prefix 'esb' for 'allocate_more'
* Initial buffer size reduced to 16.
* New function 'esb_open_null_device': open 'null' device
* New function 'esb_close_null_device': close 'null' device
* New function 'esb_allocate_more_if_needed': allocate more
space if required, leaving the contents unchanged, so the
caller, does not need to worry about it.
There are 2 cases:
Windows: use the 'null' device to get the required space
UNIX: use a big buffer (512). But if the result is bigger,
the original problem will be shown.
* The function 'esb_append_printf_ap', now takes care of
increasing the buffer if needed.
dwarfdump.c: In the case of windows, open and close the 'null'
device, in order to setup the esb module.
# By David Anderson
# Via David Anderson
* master:
dwarfexample/ChangeLog said 2011 but it is really just 2016 changes. Fixed.
Fixed a stray Dwarf_Unsigned to be Dwarf_Off in dwarfdump/print_die.c: dieprint_cu_goffset is the variable.
dwarfdump/globals.h
dwarfdump/print_aranges.c
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_lines.c
dwarfdump/print_macro.c
dwarfdump/print_pubnames.c
print_lines.c,print_macro.c,print_pubnames.c:
Remove the global dieprint_cu_offset, use local vars and pass around instead.
Ensure the traverse() logic when checking type references do not evaluate
references to other sections. Many argument lists got an additional argument or two.
libdwarf/dwarf_form.c
fix a comment
* dwarfdump.c: Update version string. Added CU_low_address so
CU_base_address is properly used only for the DWARF
CU 'base address' notion. Print CU_low_address in PRINT_CU_INFO().
* common.c: Update version string
* globals.h: New macro DROP_ERROR_INSTANCE(d,r,e) improves consistency
where we need to drop a Dwarf_Error instance.
* print_die.c: Support for CU_low_address. Use DROP_ERROR_INSTANCE
where appropriate.
* print_frames.c: Use DROP_ERROR_INSTANCE
where appropriate.
Missing '_' just for consistency.
Print any harmless errors only the required in command line
* globals.h:
Unused declaration.
* print_die.c:
When displaying a DW_AT_type offset error, uses the standard
0xdddddddd format.
Wrap to 80 columns, a long line.
* master:
Tighten up the checking-tree array sizes and add comments about setting those sizes. dwarfdump/tag_attr_ext.list dwarfdump/tag_common.h dwarfdump/tag_tree_ext.list
Update version strings. Add some already known GNU extension tags to the lists.
Conflicts:
dwarfdump/common.c
add comments about setting those sizes.
dwarfdump/tag_attr_ext.list
dwarfdump/tag_common.h
dwarfdump/tag_tree_ext.list
Changes aid in testing.
No change in the tsearch code itself.
tsearch/config.h
tsearch/dwarf_tsearch.c
tsearch/dwarf_tsearch.h
how to update the values for the limits in the tables used
during the semantic check.
* tag_common.h: Update the semantic tables sizes; it was checking
a lot of empty entries.
* tag_tree_ext.list: Added valid TAGs for the GNU extensions:
DW_TAG_GNU_template_parameter_pack,
DW_TAG_GNU_formal_parameter_pack
* tag_tree_ext.list, tag_attr_ext.list: Include support for variadic
templates (GCC extension) DW_TAG_GNU_template_parameter_pack,
DW_TAG_GNU_formal_parameter_pack. These extensions are
generated by LLVM
* tag_tree.c: Incorrect generated comment
* tag_common.h: Update table size for new added tag/attr checks
print_frames.c,print_lines.c,print_locs.c,print_macro.c,
print_pubnames.c,print_reloc.ckprint_static_funcs.c,
print_static_vars.c,print_strings.c,print_types.c,
print_weaknames.c: Removed global Dwarf_Error err
and provided local Dwarf_Error as needed.
libdwarf2.1.mm: Added dwarf_lineoff_b() documentation.
Fixed a typo in dwarf_formexprloc() documentation.
libdwarf2.1.pdf: Regenerated. Version 2.41
better reflect the meaning and avoid 'std'
as 'std' seems to be a keyword
in at least one environment.
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_lines.c
fdes were not printing properly.
We were testing the wrong thing to determine if
we should print.
dwarfdump/print_frames.c
The code for frames was basically ok.
But clearer now with better comments for eh_frame.
And clearer 'no entry' for fde augmentation bytes.
libdwarf/dwarf_frame.c
libdwarf/dwarf_frame.h
libdwarf/dwarf_frame2.c
And new checks for wasted space made.
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/macrocheck.c
dwarfdump/macrocheck.h
dwarfdump/print_die.c
dwarfdump/print_macros.c
dwarfdump/common.c
dwarfdump/dwarfdump.c
Now uses GOFF= almost uniformly in showning the cu-global
offset of DIEs. Reducing the size of some dwarfdump output
as a result.
dwarfdump/print_die.c