diff options
Diffstat (limited to 'tools/perf/builtin-inject.c')
| -rw-r--r-- | tools/perf/builtin-inject.c | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index 5d6f583e2cd3..c88c61e7f8cc 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -361,9 +361,10 @@ static struct dso *findnew_dso(int pid, int tid, const char *filename,  		dso = machine__findnew_dso_id(machine, filename, id);  	} -	if (dso) +	if (dso) { +		nsinfo__put(dso->nsinfo);  		dso->nsinfo = nsi; -	else +	} else  		nsinfo__put(nsi);  	thread__put(thread); @@ -992,8 +993,10 @@ int cmd_inject(int argc, const char **argv)  	data.path = inject.input_name;  	inject.session = perf_session__new(&data, inject.output.is_pipe, &inject.tool); -	if (IS_ERR(inject.session)) -		return PTR_ERR(inject.session); +	if (IS_ERR(inject.session)) { +		ret = PTR_ERR(inject.session); +		goto out_close_output; +	}  	if (zstd_init(&(inject.session->zstd_data), 0) < 0)  		pr_warning("Decompression initialization failed.\n"); @@ -1035,6 +1038,8 @@ int cmd_inject(int argc, const char **argv)  out_delete:  	zstd_fini(&(inject.session->zstd_data));  	perf_session__delete(inject.session); +out_close_output: +	perf_data__close(&inject.output);  	free(inject.itrace_synth_opts.vm_tm_corr_args);  	return ret;  } |