|
@@ -375,6 +375,8 @@ static int realloc_func_state(struct bpf_func_state *state, int size,
|
|
|
|
|
|
static void free_func_state(struct bpf_func_state *state)
|
|
|
{
|
|
|
+ if (!state)
|
|
|
+ return;
|
|
|
kfree(state->stack);
|
|
|
kfree(state);
|
|
|
}
|
|
@@ -487,6 +489,8 @@ static struct bpf_verifier_state *push_stack(struct bpf_verifier_env *env,
|
|
|
}
|
|
|
return &elem->st;
|
|
|
err:
|
|
|
+ free_verifier_state(env->cur_state, true);
|
|
|
+ env->cur_state = NULL;
|
|
|
/* pop all elements and return */
|
|
|
while (!pop_stack(env, NULL, NULL));
|
|
|
return NULL;
|