Re: [PATCH] perf build-id: Fix filename size calculation

From: Arnaldo Carvalho de Melo
Date: Thu May 03 2012 - 10:26:59 EST


Em Tue, May 01, 2012 at 11:19:36PM +0900, Namhyung Kim escreveu:
> The filename is a pointer variable so the sizeof(filename) will return
> length of a pointer. Fix it by using 'size'.

Applied.

The code worked because the snprintf buffer size parameter would always
be bigger (negative) than the sbuild_id lenght, and all fitted in the
filename allocated space. :-)

- Arnaldo

> Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxx>
> ---
> tools/perf/util/header.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index 4c7c2d73251f..c0b70c697a36 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -296,7 +296,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
> if (mkdir_p(filename, 0755))
> goto out_free;
>
> - snprintf(filename + len, sizeof(filename) - len, "/%s", sbuild_id);
> + snprintf(filename + len, size - len, "/%s", sbuild_id);
>
> if (access(filename, F_OK)) {
> if (is_kallsyms) {
> --
> 1.7.9.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/