Re: [PATCH v4 15/16] perf tools: add feature header record to pipe-mode

From: Jiri Olsa
Date: Tue Jun 13 2017 - 14:54:55 EST


On Mon, Jun 12, 2017 at 09:29:31PM -0700, David Carrillo-Cisneros wrote:

SNIP

> +
> + for_each_set_bit(feat, header->adds_features, HEADER_FEAT_BITS) {
> + if (!feat_ops[feat].synthesize) {
> + pr_debug("No record header feature for header :%d\n", feat);
> + continue;
> + }
> +
> + ff.offset = sizeof(*fe);
> +
> + ret = feat_ops[feat].write(&ff, evlist);
> + if (ret || ff.offset <= (ssize_t)sizeof(*fe)) {
> + pr_debug("Error writing feature\n");
> + continue;
> + }
> +
> + /* ff.buf may have changed due to realloc in do_write() */
> + fe = ff.buf;
> + memset(fe, 0, sizeof(*fe));
> +
> + fe->feat_id = feat;
> + fe->header.type = PERF_RECORD_HEADER_FEATURE;
> + fe->header.size = ff.offset;
> +
> + ret = process(tool, ff.buf, NULL, NULL);
> + if (ret)

leaking ff.buf

jirka

> + return ret;
> + }
> + free(ff.buf);
> + return 0;
> +}
> +