Bug 1527966 - dwarf_aggregate_size() doesn't work for multi-dimensional arrays
Summary: dwarf_aggregate_size() doesn't work for multi-dimensional arrays
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: elfutils
Version: 7.4
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: ---
Assignee: Mark Wielaard
QA Contact: Martin Cermak
URL:
Whiteboard:
Depends On:
Blocks: 1528027
TreeView+ depends on / blocked
 
Reported: 2017-12-20 16:21 UTC by Piyush Bhoot
Modified: 2018-04-10 16:18 UTC (History)
4 users (show)

Fixed In Version: elfutils-0.170-4.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1528027 (view as bug list)
Environment:
Last Closed: 2018-04-10 16:17:17 UTC


Attachments (Terms of Use)
reproducer code (3.56 KB, text/x-csrc)
2017-12-20 16:21 UTC, Piyush Bhoot
no flags Details


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2018:0891 None None None 2018-04-10 16:18:30 UTC

Description Piyush Bhoot 2017-12-20 16:21:57 UTC
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

Comment 7 errata-xmlrpc 2018-04-10 16:17:17 UTC
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


Note You need to log in before you can comment on or make changes to this bug.