Red Hat Bugzilla – Bug 1527966
dwarf_aggregate_size() doesn't work for multi-dimensional arrays
Last modified: 2018-04-10 12:18:31 EDT
Created attachment 1370532 [details] reproducer code Description of problem: Hi. I'm observing that dwarf_aggregate_size() returns bogus results when looking at double-dimensional arrays. For instance, looking at double dd[3][5]; It says the aggregate is 64-bytes long instead of 120. The bug is that it ends up computing (3+5)*8 instead of 3*5*8. I'm attaching a simple test case. It loads the current process's debug information, and prints out the size of dd, defined as above. It shows the failure: :/tmp$ gcc -g -ldw -lelf dwarf_aggregate_size_bug.c -o dwarf_aggregate_size_bug :/tmp$ ./dwarf_aggregate_size_bug Found DIE for 'dd'. size: 64 Version : elfutils-0.168-8.el7 Additional info: Upstream bug with patch https://sourceware.org/bugzilla/show_bug.cgi?id=22546
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2018:0891