summaryrefslogtreecommitdiff
path: root/usr/src/lib/libproc/common
diff options
context:
space:
mode:
authorPatrick Mooney <patrick.f.mooney@gmail.com>2015-03-16 15:14:31 +0000
committerPatrick Mooney <patrick.f.mooney@gmail.com>2015-03-16 16:40:41 +0000
commit2feca3be7594e7863a5b43647123ce14f8cdc7b5 (patch)
tree208a89696eec56e835a6246898da0214cacfe113 /usr/src/lib/libproc/common
parentf7ea4da938aa53876e4566a132d9d832326ad270 (diff)
downloadillumos-joyent-2feca3be7594e7863a5b43647123ce14f8cdc7b5.tar.gz
OS-4050 libproc reads .gnu_debuglink padding incorrectly
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Diffstat (limited to 'usr/src/lib/libproc/common')
-rw-r--r--usr/src/lib/libproc/common/Psymtab.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr/src/lib/libproc/common/Psymtab.c b/usr/src/lib/libproc/common/Psymtab.c
index 41f41f3dde..a3e0d07ae2 100644
--- a/usr/src/lib/libproc/common/Psymtab.c
+++ b/usr/src/lib/libproc/common/Psymtab.c
@@ -2025,10 +2025,12 @@ Pbuild_file_symtab(struct ps_prochandle *P, file_info_t *fptr)
* file. If we don't see this, we're going to
* assume this is bogus.
*/
- if ((i % sizeof (uint32_t)) == 0)
+ if ((i % sizeof (uint32_t)) == 0) {
i += 4;
- else
- i += i % sizeof (uint32_t);
+ } else {
+ i += sizeof (uint32_t) -
+ (i % sizeof (uint32_t));
+ }
if (i + sizeof (uint32_t) ==
dbglink->c_data->d_size) {
found = B_TRUE;