diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-06-14 20:19:45 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-06-14 20:19:45 -0700 |
commit | 99d2372b25d1231d786b70278478c7a112f2b27c (patch) | |
tree | ca307d5078971fdef16f324e8ffd32b25ddd0df1 /libdw/dwarf_nextcu.c | |
parent | f189493154d0041deced00e6a99cc5426dc9d260 (diff) | |
download | elfutils-99d2372b25d1231d786b70278478c7a112f2b27c.tar.gz |
Squashed commit of the following:
commit 77abb31cb8d55980ef92260917a7ecdd228b1a44
Author: Petr Machata <pmachata@redhat.com>
Date: Mon Jun 8 15:46:16 2009 +0200
Fix a bug in offset checking
commit b794eac4f8d3e08101b5d2924523b1259bbc1b17
Author: Petr Machata <pmachata@redhat.com>
Date: Wed Jun 3 16:00:01 2009 +0200
Cosmetic, get rid of defining several variables per line
commit a23938fe35d515a3d75a51f6204771f3cf6c9ec4
Author: Petr Machata <pmachata@redhat.com>
Date: Wed Jun 3 15:50:03 2009 +0200
Restructure the code to decrease the binary size
commit 7c301e3d4e8584dfb3174855fb6af3d5791dfeed
Author: Petr Machata <pmachata@redhat.com>
Date: Mon Jun 1 19:43:28 2009 +0200
Shuffle a couple pieces of code around to make the code smaller
commit 6325323482c2a3e17409d32c7feec9461be26614
Merge: 83ac53d... e94b1b2...
Author: Petr Machata <pmachata@redhat.com>
Date: Fri May 22 08:49:07 2009 +0200
Merge branch 'master' of ssh://pmachata@git.fedorahosted.org/git/elfutils into pmachata/reader_hooks
Conflicts:
libdw/ChangeLog
commit 83ac53db400945c074e77ec9904efe550903a0e2
Author: Petr Machata <pmachata@redhat.com>
Date: Fri May 22 08:40:25 2009 +0200
Call reloc hook with the original address, not incremented
commit f1996388745566abc1ca1c1700b3b7eded208575
Author: Petr Machata <pmachata@redhat.com>
Date: Wed May 6 16:53:03 2009 +0200
Rewrite boundary checking logic so that it's immune to arithmetic overflow
* ... also get rid of some code redundancy.
commit 0c1df732822d83548edd0d005f3450281ed1701b
Author: Petr Machata <pmachata@redhat.com>
Date: Wed May 6 16:25:09 2009 +0200
__libdw_read_offset* take extra argument for header size checks
* also presence of debug data and buffer is checked in __libdw_in_section
commit 6fb192e360f842cacb34a90c03cd0524cccc3dec
Author: Petr Machata <pmachata@redhat.com>
Date: Wed May 6 15:51:20 2009 +0200
Check for presence of data before loading the offset
commit a2e7612b165d83dd241225f87075fa4f58d18781
Author: Petr Machata <pmachata@redhat.com>
Date: Wed May 6 15:04:16 2009 +0200
Cosmetic changes
commit 8b1aad2c2f6c8dc02b3e704e4f386c1827e385cb
Author: Petr Machata <pmachata@redhat.com>
Date: Tue May 5 15:34:13 2009 +0200
Improve reader hook functions a bit
* ... so that they are closer match to what's need on call sites
commit 3854b7fbab2fe331711365f94a295af82164d0d2
Author: Petr Machata <pmachata@redhat.com>
Date: Tue May 5 14:33:50 2009 +0200
Fixes in use of reader hooks in __libdw_formptr and dwarf_formudata
* and a bit more
commit 335075596b6acef6e59919155e2b087e690a572d
Author: Petr Machata <pmachata@redhat.com>
Date: Tue May 5 14:32:39 2009 +0200
Rename __libdw_read_udata_addr to __libdw_formptr
commit 8273a2adaf8cb2ee203926af2849e4f96f8a6eaf
Author: Petr Machata <pmachata@redhat.com>
Date: Tue May 5 02:53:40 2009 +0200
Introduce __libdw_read_udata_address
* the use in dwarf_ranges is iffy, there's a functionality mismatch.
Need to find some better way
commit 1c897f4abde1530038d332f4fc03a596a24f6aaf
Author: Petr Machata <pmachata@redhat.com>
Date: Mon May 4 18:09:13 2009 +0200
ChangeLog entries for previous commit
commit 90d7c39454468b91c0fd6514a4e8d821222d6adb
Author: Petr Machata <pmachata@redhat.com>
Date: Mon May 4 18:07:54 2009 +0200
Fix bugs, introduce __libdw_read_begin_end_pair_inc
commit 9b3923f5b69a3e56590769435c4693f057acdc1f
Merge: 6200ba6... 589b3d3...
Author: Petr Machata <pmachata@redhat.com>
Date: Mon May 4 12:22:21 2009 +0200
Merge branch 'master' of ssh://pmachata@git.fedorahosted.org/git/elfutils into pmachata/reader_hooks
commit 6200ba62aa9ea3cb9318f73a27181907a528dbe4
Author: Petr Machata <pmachata@redhat.com>
Date: Wed Apr 29 15:31:28 2009 +0200
dwarf_getlocation_addr uses read hooks
commit ecbb8cdd8b500e37dc34fc246b912f704fe31ca4
Author: Petr Machata <pmachata@redhat.com>
Date: Wed Apr 29 15:16:09 2009 +0200
dwarf_ranges and dwarf_formref use read hooks
commit cb8f67b29a896c2660c10aa1028a9dbb377553e9
Author: Petr Machata <pmachata@redhat.com>
Date: Tue Apr 28 18:39:04 2009 +0200
Convert several new functions to use read hooks
commit b130453eb16a8cf042915e312cc5f189b8b92c01
Author: Petr Machata <pmachata@redhat.com>
Date: Tue Apr 28 18:38:27 2009 +0200
Add length read hooks
commit bd885ff694817b965231d99f1ab867947998e734
Author: Petr Machata <pmachata@redhat.com>
Date: Tue Apr 28 18:36:17 2009 +0200
Constify read hook arguments
commit 66fe03f1e489a88b89a15c9e13f9bd33db2729b1
Author: Petr Machata <pmachata@redhat.com>
Date: Tue Apr 28 16:11:05 2009 +0200
Change type of return value of offset read hooks to Dwarf_Off
commit 22b36e00cc228f5a966f84ca3323e5d652923ce8
Merge: 5b3534b... a7cb532...
Author: Petr Machata <pmachata@redhat.com>
Date: Mon Apr 27 19:05:25 2009 +0200
Merge branch 'master' of ssh://pmachata@git.fedorahosted.org/git/elfutils into pmachata/reader_hooks
commit 5b3534b62cbd45fe4f11dd1be3e492237938cce0
Author: Petr Machata <pmachata@redhat.com>
Date: Mon Apr 27 18:53:06 2009 +0200
Rewrites in read hooks
* Have the checking and reading logic itself in the header so that it gets
optimized out/inlined. Call external relocating hook from there, there
will presumably be more work to do, and we presumably don't want to keep
this in the header.
commit 9e265d71d0eb900e76d6fdb0196ef4fc6507f3a7
Merge: 1783089... 300f3a4...
Author: Petr Machata <pmachata@redhat.com>
Date: Thu Apr 23 17:45:25 2009 +0200
Merge branch 'master' of ssh://pmachata@git.fedorahosted.org/git/elfutils into pmachata/reader_hooks
commit 1783089b184ddea2081bbe5ac4e80420cb6b0803
Author: Petr Machata <pmachata@redhat.com>
Date: Thu Apr 23 17:44:48 2009 +0200
Use the new reader hooks in several places
commit 11c3d97a5b40ea15edf324092b03da3050610d01
Author: Petr Machata <pmachata@redhat.com>
Date: Thu Apr 23 17:40:03 2009 +0200
Introduce reader hooks
Diffstat (limited to 'libdw/dwarf_nextcu.c')
-rw-r--r-- | libdw/dwarf_nextcu.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/libdw/dwarf_nextcu.c b/libdw/dwarf_nextcu.c index 9e5a96bc..66cde78a 100644 --- a/libdw/dwarf_nextcu.c +++ b/libdw/dwarf_nextcu.c @@ -84,7 +84,8 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, /* This points into the .debug_info section to the beginning of the CU entry. */ - char *bytes = (char *) dwarf->sectiondata[IDX_debug_info]->d_buf + off; + unsigned char *data = dwarf->sectiondata[IDX_debug_info]->d_buf; + unsigned char *bytes = data + off; /* The format of the CU header is described in dwarf2p1 7.5.1: @@ -144,10 +145,10 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, /* Get offset in .debug_abbrev. Note that the size of the entry depends on whether this is a 32-bit or 64-bit DWARF definition. */ uint64_t abbrev_offset; - if (offset_size == 4) - abbrev_offset = read_4ubyte_unaligned_inc (dwarf, bytes); - else - abbrev_offset = read_8ubyte_unaligned_inc (dwarf, bytes); + if (__libdw_read_offset_inc (dwarf, IDX_debug_info, &bytes, offset_size, + &abbrev_offset, IDX_debug_abbrev, 0)) + return -1; + if (abbrev_offsetp != NULL) *abbrev_offsetp = abbrev_offset; @@ -162,9 +163,7 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, /* Store the header length. */ if (header_sizep != NULL) - *header_sizep = (bytes - - ((char *) dwarf->sectiondata[IDX_debug_info]->d_buf - + off)); + *header_sizep = bytes - (data + off); /* See definition of DIE_OFFSET_FROM_CU_OFFSET macro for an explanation of the trick in this expression. */ |