bpf/btf  write_* functions need ff->ph->env.

With this missing, pipe-mode (perf record -o -)  would crash like:

Program terminated with signal SIGSEGV, Segmentation fault.

This patch assign proper ph value to ff.

Cc: sta...@vger.kernel.org #v5.1+
Fixes: 606f972b1361 ("perf bpf: Save bpf_prog_info information as headers to 
perf.data")
Reported-by: David Carrillo Cisneros <davi...@fb.com>
Signed-off-by: Song Liu <songliubrav...@fb.com>
---
 tools/perf/util/header.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 06ddb6618ef3..5f1aa0284e1b 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -3684,6 +3684,7 @@ int perf_event__synthesize_features(struct perf_tool 
*tool,
                return -ENOMEM;
 
        ff.size = sz - sz_hdr;
+       ff.ph = &session->header;
 
        for_each_set_bit(feat, header->adds_features, HEADER_FEAT_BITS) {
                if (!feat_ops[feat].synthesize) {
-- 
2.17.1

Reply via email to