diff options
| author | Steven Rostedt <srostedt@redhat.com> | 2010-02-24 16:17:38 -0500 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2010-02-24 16:21:52 -0500 |
| commit | bb3b0de175c3aa8ccc40572fe2aef03ad1349fc8 (patch) | |
| tree | 13dc34a5e7f33b617d6e08326052ffb0a91769bb | |
| parent | 7716e2e0d6d855e34ead9c0de271c6eed5458a65 (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.c | 2 | ||||
| -rw-r--r-- | parse-events.h | 6 |
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 */ |
| 380 | enum trace_flag_type { | 380 | enum trace_flag_type { |
