diff --git a/gtests/net/packetdrill/code.c b/gtests/net/packetdrill/code.c index 085683a0dfa6fb734c9d912ef18afa74ab1c5c9e..3f4dd74ef00e74392c12b67efa618a44d9b5044b 100644 --- a/gtests/net/packetdrill/code.c +++ b/gtests/net/packetdrill/code.c @@ -618,6 +618,7 @@ void run_code_event(struct state *state, struct event *event, return; error_out: + state_free(state); die("%s:%d: runtime error in code: %s\n", state->config->script_path, event->line_number, error); free(error); diff --git a/gtests/net/packetdrill/run.c b/gtests/net/packetdrill/run.c index bb962e13c18be4018005e442924a6a39bcd3089b..d6ff4af6afc0669d84cb8ffcb6c166fbcd77255f 100644 --- a/gtests/net/packetdrill/run.c +++ b/gtests/net/packetdrill/run.c @@ -401,6 +401,7 @@ static void run_local_packet_event(struct state *state, struct event *event, fprintf(stderr, "%s", error); free(error); } else if (result == STATUS_ERR) { + state_free(state); die("%s", error); } } @@ -588,6 +589,7 @@ void run_script(struct config *config, struct script *script) wire_client_next_event(state->wire_client, NULL); if (code_execute(state->code, &error)) { + state_free(state); die("%s: error executing code: %s\n", state->config->script_path, error); free(error); diff --git a/gtests/net/packetdrill/run_command.c b/gtests/net/packetdrill/run_command.c index a55e596d218d08ad0063db7bf5ea6d9b2c19c53e..85c302b5e6f464c00be740f251834efb94719718 100644 --- a/gtests/net/packetdrill/run_command.c +++ b/gtests/net/packetdrill/run_command.c @@ -48,6 +48,7 @@ void run_command_event( return; error_out: + state_free(state); die("%s:%d: error executing `%s` command: %s\n", state->config->script_path, event->line_number, command->command_line, error); diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index 1a606a41893573264ad912a826ad96f47f5249c9..5f0fadb5aaff2a60dc6c10e99b81b3b041b9219a 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -1958,6 +1958,7 @@ static void invoke_system_call( return; error_out: + state_free(state); die("%s:%d: runtime error in %s call: %s\n", state->config->script_path, event->line_number, syscall->name, error); @@ -2058,6 +2059,7 @@ static void enqueue_system_call( return; error_out: + state_free(state); die("%s:%d: runtime error in %s call: %s\n", state->config->script_path, event->line_number, syscall->name, error);