Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | elf: Fix pldd (BZ#18035) | Adhemerval Zanella | 2019-04-23 | 1 | -74/+40 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 9182aa67994 (Fix vDSO l_name for GDB's, BZ#387) the initial link_map for executable itself and loader will have both l_name and l_libname->name holding the same value due: elf/dl-object.c 95 new->l_name = *realname ? realname : (char *) newname->name + libname_len - 1; Since newname->name points to new->l_libname->name. This leads to pldd to an infinite call at: elf/pldd-xx.c 203 again: 204 while (1) 205 { 206 ssize_t n = pread64 (memfd, tmpbuf.data, tmpbuf.length, name_offset); 228 /* Try the l_libname element. */ 229 struct E(libname_list) ln; 230 if (pread64 (memfd, &ln, sizeof (ln), m.l_libname) == sizeof (ln)) 231 { 232 name_offset = ln.name; 233 goto again; 234 } Since the value at ln.name (l_libname->name) will be the same as previously read. The straightforward fix is just avoid the check and read the new list entry. I checked also against binaries issues with old loaders with fix for BZ#387, and pldd could dump the shared objects. Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu, and powerpc64le-linux-gnu. [BZ #18035] * elf/Makefile (tests-container): Add tst-pldd. * elf/pldd-xx.c: Use _Static_assert in of pldd_assert. (E(find_maps)): Avoid use alloca, use default read file operations instead of explicit LFS names, and fix infinite loop. * elf/pldd.c: Explicit set _FILE_OFFSET_BITS, cleanup headers. (get_process_info): Use _Static_assert instead of assert, use default directory operations instead of explicit LFS names, and free some leadek pointers. * elf/tst-pldd.c: New file. | ||||
* | Update copyright dates with scripts/update-copyrights. | Joseph Myers | 2019-01-01 | 1 | -1/+1 |
| | | | | | | | * All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise. | ||||
* | Update copyright dates with scripts/update-copyrights. | Joseph Myers | 2018-01-01 | 1 | -1/+1 |
| | | | | | | | * All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise. | ||||
* | Update copyright dates with scripts/update-copyrights. | Joseph Myers | 2017-01-01 | 1 | -1/+1 |
| | |||||
* | Update copyright dates with scripts/update-copyrights. | Joseph Myers | 2016-01-04 | 1 | -1/+1 |
| | |||||
* | pldd: Use struct scratch_buffer instead of extend_alloca | Florian Weimer | 2015-04-08 | 1 | -11/+21 |
| | |||||
* | Update copyright dates with scripts/update-copyrights. | Joseph Myers | 2015-01-02 | 1 | -1/+1 |
| | |||||
* | Update copyright notices with scripts/update-copyrights | Allan McRae | 2014-01-01 | 1 | -1/+1 |
| | |||||
* | Update copyright notices with scripts/update-copyrights. | Joseph Myers | 2013-01-02 | 1 | -1/+1 |
| | |||||
* | Prevent warning in pldd. | Marek Polacek | 2012-04-16 | 1 | -9/+9 |
| | |||||
* | Replace FSF snail mail address with URLs. | Paul Eggert | 2012-02-09 | 1 | -3/+2 |
| | |||||
* | Remove leftover debug message from pldd | Ulrich Drepper | 2011-10-14 | 1 | -1/+0 |
| | |||||
* | Remove unused parameter in pldd and simplify ELF handling | Ulrich Drepper | 2011-09-05 | 1 | -1/+1 |
| | |||||
* | Fix some problem of 32-bit pldd on 64-bit platforms | Ulrich Drepper | 2011-08-17 | 1 | -0/+5 |
| | |||||
* | Add pldd program | Ulrich Drepper | 2011-06-09 | 1 | -0/+238 |