Re: perf script, libperf: python binding bug (bytearrays vs. strings)

From: Jiri Olsa
Date: Mon Sep 28 2020 - 09:40:07 EST


On Mon, Sep 28, 2020 at 12:43:11PM +0200, Hagen Paul Pfeifer wrote:
> * Jiri Olsa | 2020-09-28 12:08:08 [+0200]:
>
> >patch below fixes it for me, but seems strange this was
> >working till now.. maybe you're the only one using this
> >with python3 ;-)
>
> and I thought python2 is obsolete and not maintained anymore ... ;-)
> Anyway, the patch fixed everything: no more garbage for Python2 and Python3
> as well as no bytearray type Python3!
>
> Tested-by: Hagen Paul Pfeifer <hagen@xxxxxxxx>
>
> Thank you Jiri!
>
> Probably this patch should be applied on stable too!? Not sure when the
> problem was introduced.

great, I'll check on that and send full patch later, thanks

jirka

>
> Hagen
>
> >jirka
> >
> >
> >---
> >diff --git a/tools/perf/util/print_binary.c b/tools/perf/util/print_binary.c
> >index 599a1543871d..13fdc51c61d9 100644
> >--- a/tools/perf/util/print_binary.c
> >+++ b/tools/perf/util/print_binary.c
> >@@ -50,7 +50,7 @@ int is_printable_array(char *p, unsigned int len)
> >
> > len--;
> >
> >- for (i = 0; i < len; i++) {
> >+ for (i = 0; i < len && p[i]; i++) {
> > if (!isprint(p[i]) && !isspace(p[i]))
> > return 0;
> > }
> >
>