perf probe: Fix mis-estimation for shortening filename
authorMasami Hiramatsu <mhiramat@redhat.com>
Wed, 14 Apr 2010 22:39:35 +0000 (18:39 -0400)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 14 Apr 2010 20:41:14 +0000 (17:41 -0300)
Fix mis-estimation size for making a short filename.
Since the buffer size is 32 bytes and there are '@' prefix and
'\0' termination, maximum shorten filename length should be
30. This means, before searching '/', it should be 31 bytes.

LKML-Reference: <20100414223935.14630.11954.stgit@localhost6.localdomain6>
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/probe-event.c

index 1c4a20a284c0688f61cf18f4c13d039661da0973..6d438391bae58d501a9d0f651e3685d9ffdd87eb 100644 (file)
@@ -806,12 +806,12 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp)
                        goto error;
        }
        if (pp->file) {
-               len = strlen(pp->file) - 32;
+               len = strlen(pp->file) - 31;
                if (len < 0)
                        len = 0;
                tmp = strchr(pp->file + len, '/');
                if (!tmp)
-                       tmp = pp->file + len - 1;
+                       tmp = pp->file + len;
                ret = e_snprintf(file, 32, "@%s", tmp + 1);
                if (ret <= 0)
                        goto error;