aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-02-24 16:17:38 -0500
committerSteven Rostedt <rostedt@goodmis.org>2010-02-24 16:21:52 -0500
commitbb3b0de175c3aa8ccc40572fe2aef03ad1349fc8 (patch)
tree13dc34a5e7f33b617d6e08326052ffb0a91769bb
parent7716e2e0d6d855e34ead9c0de271c6eed5458a65 (diff)
parse-events: Fix endian bug in get_str()
The get_str() code was missing an endian conversion. Also the macros for data2hast needed parenthesis. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--parse-events.c2
-rw-r--r--parse-events.h6
2 files changed, 4 insertions, 4 deletions
diff --git a/parse-events.c b/parse-events.c
index b483e85..a284889 100644
--- a/parse-events.c
+++ b/parse-events.c
@@ -2937,7 +2937,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
2937 f = pevent_find_any_field(event, arg->string.string); 2937 f = pevent_find_any_field(event, arg->string.string);
2938 arg->string.offset = f->offset; 2938 arg->string.offset = f->offset;
2939 } 2939 }
2940 str_offset = *(int *)(data + arg->string.offset); 2940 str_offset = data2host4(pevent, data + arg->string.offset);
2941 str_offset &= 0xffff; 2941 str_offset &= 0xffff;
2942 trace_seq_puts(s, ((char *)data) + str_offset); 2942 trace_seq_puts(s, ((char *)data) + str_offset);
2943 break; 2943 break;
diff --git a/parse-events.h b/parse-events.h
index f87d85c..98a5f4b 100644
--- a/parse-events.h
+++ b/parse-events.h
@@ -372,9 +372,9 @@ __data2host8(struct pevent *pevent, unsigned long long data)
372 return swap; 372 return swap;
373} 373}
374 374
375#define data2host2(pevent, ptr) __data2host2(pevent, *(unsigned short *)ptr) 375#define data2host2(pevent, ptr) __data2host2(pevent, *(unsigned short *)(ptr))
376#define data2host4(pevent, ptr) __data2host4(pevent, *(unsigned int *)ptr) 376#define data2host4(pevent, ptr) __data2host4(pevent, *(unsigned int *)(ptr))
377#define data2host8(pevent, ptr) __data2host8(pevent, *(unsigned long long *)ptr) 377#define data2host8(pevent, ptr) __data2host8(pevent, *(unsigned long long *)(ptr))
378 378
379/* taken from kernel/trace/trace.h */ 379/* taken from kernel/trace/trace.h */
380enum trace_flag_type { 380enum trace_flag_type {