Re: [PATCH v2 01/13] perf header: encapsulate read and swap

From: Jiri Olsa
Date: Thu May 25 2017 - 04:13:06 EST


On Tue, May 23, 2017 at 12:48:41AM -0700, David Carrillo-Cisneros wrote:

SNIP

> - if (ph->needs_swap)
> - nr = bswap_32(nr);
> -
> ph->env.nr_sibling_cores = nr;
> - size += sizeof(u32);
> if (strbuf_init(&sb, 128) < 0)
> goto free_cpu;
>
> @@ -1820,20 +1812,14 @@ static int process_cpu_topology(struct perf_file_section *section,
> /* include a NULL character at the end */
> if (strbuf_add(&sb, str, strlen(str) + 1) < 0)
> goto error;
> - size += string_size(str);
> free(str);
> }

hum, you disabled the size check logic by removing
those size calculations, there's following code:

/*
* The header may be from old perf,
* which doesn't include core id and socket id information.
*/
if (section->size <= size) {
zfree(&ph->env.cpu);
return 0;
}


that recognize earlier version of the header

jirka