summaryrefslogtreecommitdiffstats
path: root/runtime/transport/symbols.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-10-07 13:06:17 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-10-07 13:06:17 -0400
commit0d633db21595f7160d0f7a767ab92181284d8adb (patch)
treec55f11d1280e0b940195d6c5ef9fc85b752a42da /runtime/transport/symbols.c
parent53ed08414957de1e90c8332f7d5a71a384de039e (diff)
downloadsystemtap-steved-0d633db21595f7160d0f7a767ab92181284d8adb.tar.gz
systemtap-steved-0d633db21595f7160d0f7a767ab92181284d8adb.tar.xz
systemtap-steved-0d633db21595f7160d0f7a767ab92181284d8adb.zip
PR4886: weaken build-id failure semantics
Diffstat (limited to 'runtime/transport/symbols.c')
-rw-r--r--runtime/transport/symbols.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
index faba0986..1cd78724 100644
--- a/runtime/transport/symbols.c
+++ b/runtime/transport/symbols.c
@@ -51,20 +51,19 @@ static void _stp_do_relocation(const char __user *buf, size_t count)
if (strcmp (_stp_modules[mi]->name, msg.module))
continue;
- /* update note section to represent loaded */
- if (_stp_modules[mi]->notes_sect == 0)
- _stp_modules[mi]->notes_sect = 1;
+ if (!strcmp (".note.gnu.build-id", msg.reloc)) {
+ _stp_modules[mi]->notes_sect = msg.address; /* cache this particular address */
+ }
+
for (si=0; si<_stp_modules[mi]->num_sections; si++)
{
- if (!strcmp (".note.gnu.build-id", msg.reloc)) {
- _stp_modules[mi]->notes_sect = msg.address;
- continue;
- }
-
if (strcmp (_stp_modules[mi]->sections[si].name, msg.reloc))
continue;
-
- _stp_modules[mi]->sections[si].addr = msg.address;
+ else
+ {
+ _stp_modules[mi]->sections[si].addr = msg.address;
+ break;
+ }
} /* loop over sections */
} /* loop over modules */
}