Skip to content

Commit

Permalink
trace: add build-time check to avoid overrunning hex buffer
Browse files Browse the repository at this point in the history
Remove the runtime BUG_ON and change to a compile-time check in
the macro that calls the hex format routine

[Noticed by Joe Perches]
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Harvey Harrison authored and Ingo Molnar committed Oct 14, 2008
1 parent 2fbc474 commit ad0a3b6
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions kernel/trace/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,8 @@ trace_seq_putmem(struct trace_seq *s, void *mem, size_t len)
return len;
}

#define HEX_CHARS 17
#define MAX_MEMHEX_BYTES 8
#define HEX_CHARS (MAX_MEMHEX_BYTES*2 + 1)

static int
trace_seq_putmem_hex(struct trace_seq *s, void *mem, size_t len)
Expand All @@ -344,8 +345,6 @@ trace_seq_putmem_hex(struct trace_seq *s, void *mem, size_t len)
unsigned char *data = mem;
int i, j;

BUG_ON(len >= HEX_CHARS);

#ifdef __BIG_ENDIAN
for (i = 0, j = 0; i < len; i++) {
#else
Expand Down Expand Up @@ -1668,6 +1667,7 @@ do { \

#define SEQ_PUT_HEX_FIELD_RET(s, x) \
do { \
BUILD_BUG_ON(sizeof(x) > MAX_MEMHEX_BYTES); \
if (!trace_seq_putmem_hex(s, &(x), sizeof(x))) \
return 0; \
} while (0)
Expand Down

0 comments on commit ad0a3b6

Please sign in to comment.