for (i = 0; i < perf_pmu_events_list_num; i++) {
                        p = perf_pmu_events_list + i;
-                       free(p->symbol);
+                       zfree(&p->symbol);
                }
                zfree(&perf_pmu_events_list);
                perf_pmu_events_list_num = 0;
        r = bsearch(&p, perf_pmu_events_list,
                        (size_t) perf_pmu_events_list_num,
                        sizeof(struct perf_pmu_event_symbol), comp_pmu);
-       free(p.symbol);
+       zfree(&p.symbol);
        return r ? r->type : PMU_EVENT_SYMBOL_ERR;
 }
 
                fprintf(stderr, "%*s\\___ %s\n", idx + 1, "", err->str);
                if (err->help)
                        fprintf(stderr, "\n%s\n", err->help);
-               free(err->str);
-               free(err->help);
+               zfree(&err->str);
+               zfree(&err->help);
        }
 
        fprintf(stderr, "Run 'perf list' for a list of valid events\n");
 
        list_for_each_entry_safe(term, h, terms, list) {
                if (term->array.nr_ranges)
-                       free(term->array.ranges);
+                       zfree(&term->array.ranges);
                list_del_init(&term->list);
                free(term);
        }
 
 void parse_events__clear_array(struct parse_events_array *a)
 {
-       free(a->ranges);
+       zfree(&a->ranges);
 }
 
 void parse_events_evlist_error(struct parse_events_evlist *data,