Re: [PATCH 1/2] perf tools: Decompress kernel module when reading DSO data

From: Jiri Olsa
Date: Thu Jun 01 2017 - 07:29:50 EST


On Thu, Jun 01, 2017 at 06:06:04PM +0900, Namhyung Kim wrote:

SNIP

> @@ -399,6 +438,7 @@ static int __open_dso(struct dso *dso, struct machine *machine)
> int fd;
> char *root_dir = (char *)"";
> char *name = malloc(PATH_MAX);
> + bool needs_unlink = false;
>
> if (!name)
> return -ENOMEM;
> @@ -415,7 +455,23 @@ static int __open_dso(struct dso *dso, struct machine *machine)
> if (!is_regular_file(name))
> return -EINVAL;
>
> + if (dso__needs_decompress(dso)) {
> + char buf[32];
> +
> + fd = dso__decompress_kmodule(dso, name, buf, sizeof(buf));
> + if (fd < 0)

free(name)

> + return -1;
> +
> + close(fd);
> + strcpy(name, buf);

also why not use name directly instead of buf?

jirka