diff options
author | Hyeoncheol Lee <hyc.lee@gmail.com> | 2012-09-11 03:57:28 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-01-24 14:40:20 -0500 |
commit | 7ce28b5b5b320e26ac6a0e352d5005bce3530e05 (patch) | |
tree | aeec73c79ce4ac58658fc51022b08f4f5f5cf9f6 | |
parent | b878e7fb22ea48b0585bbbbef249f7efc6d42748 (diff) |
perf probe: Allow of casting an array of char to string
Before casting a type of a variable to string, convert_variable_type()
confirms that the type is a pointer or an array. then if it is a pointer
to char, it is casted to string. but in case of an array of char, it
isn't
Signed-off-by: H.C. Lee <hyc.lee@gmail.com>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/CANFS6bb75e8a_UtyAD9yF73hfXDy0N8tSjDz=a+Vna=Y8ORMHg@mail.gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/probe-finder.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c index 1daf5c14e751..be0329394d56 100644 --- a/tools/perf/util/probe-finder.c +++ b/tools/perf/util/probe-finder.c | |||
@@ -413,12 +413,12 @@ static int convert_variable_type(Dwarf_Die *vr_die, | |||
413 | dwarf_diename(vr_die), dwarf_diename(&type)); | 413 | dwarf_diename(vr_die), dwarf_diename(&type)); |
414 | return -EINVAL; | 414 | return -EINVAL; |
415 | } | 415 | } |
416 | if (die_get_real_type(&type, &type) == NULL) { | ||
417 | pr_warning("Failed to get a type" | ||
418 | " information.\n"); | ||
419 | return -ENOENT; | ||
420 | } | ||
416 | if (ret == DW_TAG_pointer_type) { | 421 | if (ret == DW_TAG_pointer_type) { |
417 | if (die_get_real_type(&type, &type) == NULL) { | ||
418 | pr_warning("Failed to get a type" | ||
419 | " information.\n"); | ||
420 | return -ENOENT; | ||
421 | } | ||
422 | while (*ref_ptr) | 422 | while (*ref_ptr) |
423 | ref_ptr = &(*ref_ptr)->next; | 423 | ref_ptr = &(*ref_ptr)->next; |
424 | /* Add new reference with offset +0 */ | 424 | /* Add new reference with offset +0 */ |