2009-06-03 17:49:37

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: [PATCH tip 1/1] perf_counter tools: Fix off-by-one bug in symbol__new

The end is really (start + len - 1). Noticed when synthesizing the PLT
symbols, that are small (16 bytes), and hot on the start RIP.

Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>

diff --git a/Documentation/perf_counter/util/symbol.c b/Documentation/perf_counter/util/symbol.c
index d52a1ae..35ee6de 100644
--- a/Documentation/perf_counter/util/symbol.c
+++ b/Documentation/perf_counter/util/symbol.c
@@ -19,7 +19,7 @@ static struct symbol *symbol__new(uint64_t start, uint64_t len,
self = ((void *)self) + priv_size;
}
self->start = start;
- self->end = start + len;
+ self->end = start + len - 1;
memcpy(self->name, name, namelen);
}


2009-06-03 19:49:22

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: [tip:perfcounters/core] perf_counter tools: Fix off-by-one bug in symbol__new

Commit-ID: 18374ab76e3ec1cf1b0ca5a8d08e35cfc5d01669
Gitweb: http://git.kernel.org/tip/18374ab76e3ec1cf1b0ca5a8d08e35cfc5d01669
Author: Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Wed, 3 Jun 2009 14:49:21 -0300
Committer: Ingo Molnar <[email protected]>
CommitDate: Wed, 3 Jun 2009 21:46:59 +0200

perf_counter tools: Fix off-by-one bug in symbol__new

The end is really (start + len - 1). Noticed when synthesizing
the PLT symbols, that are small (16 bytes), and hot on the
start RIP.

Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Corey Ashford <[email protected]>
Cc: Marcelo Tosatti <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Thomas Gleixner <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>


---
Documentation/perf_counter/util/symbol.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/Documentation/perf_counter/util/symbol.c b/Documentation/perf_counter/util/symbol.c
index d52a1ae..35ee6de 100644
--- a/Documentation/perf_counter/util/symbol.c
+++ b/Documentation/perf_counter/util/symbol.c
@@ -19,7 +19,7 @@ static struct symbol *symbol__new(uint64_t start, uint64_t len,
self = ((void *)self) + priv_size;
}
self->start = start;
- self->end = start + len;
+ self->end = start + len - 1;
memcpy(self->name, name, namelen);
}