aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2008-01-30 13:32:03 +0100
committerIngo Molnar <mingo@elte.hu>2008-01-30 13:32:03 +0100
commitcba4b65d359268c40679ca75ac92c0b93cecf6de (patch)
tree95352d42a1a51338b08b88603cd4678297d56917 /include
parente6ae5d9540727b0e2e5e2fbeb683c84671ed0a31 (diff)
x86, ptrace: add buffer size checks
Pass the buffer size for (most) ptrace commands that pass user-allocated buffers and check that size before accessing the buffer. Unfortunately, PTRACE_BTS_GET already uses all 4 parameters. Commands that access user buffers return the number of bytes or records read or written. Signed-off-by: Markus Metzger <markus.t.metzger@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/ptrace-abi.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/include/asm-x86/ptrace-abi.h b/include/asm-x86/ptrace-abi.h
index 32fe137822b..bcf67044754 100644
--- a/include/asm-x86/ptrace-abi.h
+++ b/include/asm-x86/ptrace-abi.h
@@ -99,13 +99,15 @@ struct ptrace_bts_config {
#define PTRACE_BTS_CONFIG 40
/* Configure branch trace recording.
- DATA is ignored, ADDR points to a struct ptrace_bts_config.
+ ADDR points to a struct ptrace_bts_config.
+ DATA gives the size of that buffer.
A new buffer is allocated, iff the size changes.
+ Returns the number of bytes read.
*/
#define PTRACE_BTS_STATUS 41
-/* Return the current configuration.
- DATA is ignored, ADDR points to a struct ptrace_bts_config
- that will contain the result.
+/* Return the current configuration in a struct ptrace_bts_config
+ pointed to by ADDR; DATA gives the size of that buffer.
+ Returns the number of bytes written.
*/
#define PTRACE_BTS_SIZE 42
/* Return the number of available BTS records.
@@ -123,8 +125,8 @@ struct ptrace_bts_config {
*/
#define PTRACE_BTS_DRAIN 45
/* Read all available BTS records and clear the buffer.
- DATA is ignored. ADDR points to an array of struct bts_struct of
- suitable size.
+ ADDR points to an array of struct bts_struct.
+ DATA gives the size of that buffer.
BTS records are read from oldest to newest.
Returns number of BTS records drained.
*/