diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-09-12 14:39:59 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-09-24 11:10:34 -0400 |
commit | 0dbca1e364aba20dba70d88c083239c5152440ac (patch) | |
tree | 06ff96717e807df7833fe41480dd5b9d1f988848 /tools/lib/traceevent/event-parse.c | |
parent | 3ce711a6abc27abce1554e1d671a8762b7187690 (diff) |
tools lib traceevent: Use asprintf were applicable
Replacing the equivalent open coded malloc + sprintf bits.
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/n/tip-ghokwtdw2hgmmmn7oa9s03r4@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/lib/traceevent/event-parse.c')
-rw-r--r-- | tools/lib/traceevent/event-parse.c | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c index acf40381b48b..2e05d567353e 100644 --- a/tools/lib/traceevent/event-parse.c +++ b/tools/lib/traceevent/event-parse.c | |||
@@ -827,9 +827,9 @@ static enum event_type __read_token(char **tok) | |||
827 | switch (type) { | 827 | switch (type) { |
828 | case EVENT_NEWLINE: | 828 | case EVENT_NEWLINE: |
829 | case EVENT_DELIM: | 829 | case EVENT_DELIM: |
830 | *tok = malloc_or_die(2); | 830 | if (asprintf(tok, "%c", ch) < 0) |
831 | (*tok)[0] = ch; | 831 | return EVENT_ERROR; |
832 | (*tok)[1] = 0; | 832 | |
833 | return type; | 833 | return type; |
834 | 834 | ||
835 | case EVENT_OP: | 835 | case EVENT_OP: |
@@ -2777,10 +2777,8 @@ static int event_read_print(struct event_format *event) | |||
2777 | if (type == EVENT_DQUOTE) { | 2777 | if (type == EVENT_DQUOTE) { |
2778 | char *cat; | 2778 | char *cat; |
2779 | 2779 | ||
2780 | cat = malloc_or_die(strlen(event->print_fmt.format) + | 2780 | if (asprintf(&cat, "%s%s", event->print_fmt.format, token) < 0) |
2781 | strlen(token) + 1); | 2781 | goto fail; |
2782 | strcpy(cat, event->print_fmt.format); | ||
2783 | strcat(cat, token); | ||
2784 | free_token(token); | 2782 | free_token(token); |
2785 | free_token(event->print_fmt.format); | 2783 | free_token(event->print_fmt.format); |
2786 | event->print_fmt.format = NULL; | 2784 | event->print_fmt.format = NULL; |
@@ -3524,6 +3522,18 @@ process_defined_func(struct trace_seq *s, void *data, int size, | |||
3524 | return ret; | 3522 | return ret; |
3525 | } | 3523 | } |
3526 | 3524 | ||
3525 | static void free_args(struct print_arg *args) | ||
3526 | { | ||
3527 | struct print_arg *next; | ||
3528 | |||
3529 | while (args) { | ||
3530 | next = args->next; | ||
3531 | |||
3532 | free_arg(args); | ||
3533 | args = next; | ||
3534 | } | ||
3535 | } | ||
3536 | |||
3527 | static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struct event_format *event) | 3537 | static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struct event_format *event) |
3528 | { | 3538 | { |
3529 | struct pevent *pevent = event->pevent; | 3539 | struct pevent *pevent = event->pevent; |
@@ -3559,8 +3569,9 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3559 | next = &arg->next; | 3569 | next = &arg->next; |
3560 | 3570 | ||
3561 | arg->type = PRINT_ATOM; | 3571 | arg->type = PRINT_ATOM; |
3562 | arg->atom.atom = malloc_or_die(32); | 3572 | |
3563 | sprintf(arg->atom.atom, "%lld", ip); | 3573 | if (asprintf(&arg->atom.atom, "%lld", ip) < 0) |
3574 | goto out_free; | ||
3564 | 3575 | ||
3565 | /* skip the first "%pf : " */ | 3576 | /* skip the first "%pf : " */ |
3566 | for (ptr = fmt + 6, bptr = data + field->offset; | 3577 | for (ptr = fmt + 6, bptr = data + field->offset; |
@@ -3617,8 +3628,10 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3617 | arg = alloc_arg(); | 3628 | arg = alloc_arg(); |
3618 | arg->next = NULL; | 3629 | arg->next = NULL; |
3619 | arg->type = PRINT_ATOM; | 3630 | arg->type = PRINT_ATOM; |
3620 | arg->atom.atom = malloc_or_die(32); | 3631 | if (asprintf(&arg->atom.atom, "%lld", val) < 0) { |
3621 | sprintf(arg->atom.atom, "%lld", val); | 3632 | free(arg); |
3633 | goto out_free; | ||
3634 | } | ||
3622 | *next = arg; | 3635 | *next = arg; |
3623 | next = &arg->next; | 3636 | next = &arg->next; |
3624 | /* | 3637 | /* |
@@ -3646,18 +3659,10 @@ static struct print_arg *make_bprint_args(char *fmt, void *data, int size, struc | |||
3646 | } | 3659 | } |
3647 | 3660 | ||
3648 | return args; | 3661 | return args; |
3649 | } | ||
3650 | |||
3651 | static void free_args(struct print_arg *args) | ||
3652 | { | ||
3653 | struct print_arg *next; | ||
3654 | |||
3655 | while (args) { | ||
3656 | next = args->next; | ||
3657 | 3662 | ||
3658 | free_arg(args); | 3663 | out_free: |
3659 | args = next; | 3664 | free_args(args); |
3660 | } | 3665 | return NULL; |
3661 | } | 3666 | } |
3662 | 3667 | ||
3663 | static char * | 3668 | static char * |
@@ -3684,9 +3689,8 @@ get_bprint_format(void *data, int size __maybe_unused, | |||
3684 | 3689 | ||
3685 | printk = find_printk(pevent, addr); | 3690 | printk = find_printk(pevent, addr); |
3686 | if (!printk) { | 3691 | if (!printk) { |
3687 | format = malloc_or_die(45); | 3692 | if (asprintf(&format, "%%pf : (NO FORMAT FOUND at %llx)\n", addr) < 0) |
3688 | sprintf(format, "%%pf : (NO FORMAT FOUND at %llx)\n", | 3693 | return NULL; |
3689 | addr); | ||
3690 | return format; | 3694 | return format; |
3691 | } | 3695 | } |
3692 | 3696 | ||
@@ -3694,8 +3698,8 @@ get_bprint_format(void *data, int size __maybe_unused, | |||
3694 | /* Remove any quotes. */ | 3698 | /* Remove any quotes. */ |
3695 | if (*p == '"') | 3699 | if (*p == '"') |
3696 | p++; | 3700 | p++; |
3697 | format = malloc_or_die(strlen(p) + 10); | 3701 | if (asprintf(&format, "%s : %s", "%pf", p) < 0) |
3698 | sprintf(format, "%s : %s", "%pf", p); | 3702 | return NULL; |
3699 | /* remove ending quotes and new line since we will add one too */ | 3703 | /* remove ending quotes and new line since we will add one too */ |
3700 | p = format + strlen(format) - 1; | 3704 | p = format + strlen(format) - 1; |
3701 | if (*p == '"') | 3705 | if (*p == '"') |