aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2008-01-30 07:32:03 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:32:03 -0500
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 32fe137822bf..bcf67044754c 100644
--- a/include/asm-x86/ptrace-abi.h
+++ b/include/asm-x86/ptrace-abi.h
@@ -99,13 +99,15 @@ struct ptrace_bts_config {
99 99
100#define PTRACE_BTS_CONFIG 40 100#define PTRACE_BTS_CONFIG 40
101/* Configure branch trace recording. 101/* Configure branch trace recording.
102 DATA is ignored, ADDR points to a struct ptrace_bts_config. 102 ADDR points to a struct ptrace_bts_config.
103 DATA gives the size of that buffer.
103 A new buffer is allocated, iff the size changes. 104 A new buffer is allocated, iff the size changes.
105 Returns the number of bytes read.
104*/ 106*/
105#define PTRACE_BTS_STATUS 41 107#define PTRACE_BTS_STATUS 41
106/* Return the current configuration. 108/* Return the current configuration in a struct ptrace_bts_config
107 DATA is ignored, ADDR points to a struct ptrace_bts_config 109 pointed to by ADDR; DATA gives the size of that buffer.
108 that will contain the result. 110 Returns the number of bytes written.
109*/ 111*/
110#define PTRACE_BTS_SIZE 42 112#define PTRACE_BTS_SIZE 42
111/* Return the number of available BTS records. 113/* Return the number of available BTS records.
@@ -123,8 +125,8 @@ struct ptrace_bts_config {
123*/ 125*/
124#define PTRACE_BTS_DRAIN 45 126#define PTRACE_BTS_DRAIN 45
125/* Read all available BTS records and clear the buffer. 127/* Read all available BTS records and clear the buffer.
126 DATA is ignored. ADDR points to an array of struct bts_struct of 128 ADDR points to an array of struct bts_struct.
127 suitable size. 129 DATA gives the size of that buffer.
128 BTS records are read from oldest to newest. 130 BTS records are read from oldest to newest.
129 Returns number of BTS records drained. 131 Returns number of BTS records drained.
130*/ 132*/