static __kprobes void free_indirect_fetch_data(struct indirect_fetch_data *data) { if (data->orig.func == fetch_indirect) free_indirect_fetch_data(data->orig.data); else if (data->orig.func == fetch_symbol) free_symbol_cache(data->orig.data); kfree(data); }
static void free_probe_arg(struct probe_arg *arg) { if (arg->fetch.func == fetch_symbol) free_symbol_cache(arg->fetch.data); else if (arg->fetch.func == fetch_indirect) free_indirect_fetch_data(arg->fetch.data); kfree(arg->name); }
static __kprobes void free_deref_fetch_param(struct deref_fetch_param *data) { if (CHECK_FETCH_FUNCS(deref, data->orig.fn)) free_deref_fetch_param(data->orig.data); else if (CHECK_FETCH_FUNCS(symbol, data->orig.fn)) free_symbol_cache(data->orig.data); kfree(data); }