diff options
| author | Roland McGrath <[email protected]> | 2009-04-14 01:02:17 -0700 |
|---|---|---|
| committer | Roland McGrath <[email protected]> | 2009-04-14 01:02:17 -0700 |
| commit | 04a14163323bc4d2d335909a2af7259bc53ddf8b (patch) | |
| tree | f5e790714d042f7bc55fcf829b13e3e28b4fb210 | |
| parent | 9f3610fc21bf2d1451123e402edf0f34e406aa47 (diff) | |
Fix strip -f infinite loop when coping with some extra kooky object sections.
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/strip.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 88dd78a9..87c7d7d8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-04-14 Roland McGrath <[email protected]> + + * strip.c (handle_elf: check_preserved): Don't note any change when + .debug_data is already filled from a previous pass. + 2009-02-05 Ulrich Drepper <[email protected]> * objdump.c (show_relocs_x): Minor cleanups. diff --git a/src/strip.c b/src/strip.c index 27eb2106..d788ebf2 100644 --- a/src/strip.c +++ b/src/strip.c @@ -835,7 +835,8 @@ handle_elf (int fd, Elf *elf, const char *prefix, const char *fname, inline void check_preserved (size_t i) { - if (i != 0 && shdr_info[i].idx != 0) + if (i != 0 && shdr_info[i].idx != 0 + && shdr_info[i].debug_data == NULL) { if (shdr_info[i].data == NULL) shdr_info[i].data = elf_getdata (shdr_info[i].scn, NULL); |
