On Tue, 12 Jul 2016 10:11:56 +0200
Jiri Olsa <jo...@redhat.com> wrote:


> ---
> diff --git a/tools/perf/util/scripting-engines/trace-event-python.c 
> b/tools/perf/util/scripting-engines/trace-event-python.c
> index 75e9790ebb96..9f810e6c739a 100644
> --- a/tools/perf/util/scripting-engines/trace-event-python.c
> +++ b/tools/perf/util/scripting-engines/trace-event-python.c
> @@ -390,11 +390,13 @@ static int is_printable_array(char *p, unsigned int len)
>  {
>       unsigned int i;
>  
> -     for (i = 0; i < len; i++)
> +     /* Exclude the last zero byte of string.. */
> +     for (i = 0; i < len - 1; i++)
>               if (!isprint(p[i]) && !isspace(p[i]))
>                       return 0;
>  
> -     return 1;
> +     /* ... and check its presence in the last byte. */
> +     return p[i] == 0;
>  }
>  

Of course this fails on:

        is_printable_array(a, strlen(a));

because the last byte wont be 0. What about:

        for (i = 0; i < len; i++)
                if (!isprint(p[i]) && !isspace(p[i]))
                        break;

        return i == len ||
                (i == len - 1 && p[i] == 0);

-- Steve

Reply via email to