From 12ca181e940fc640f54b0a7e23492a4bffb23dca Mon Sep 17 00:00:00 2001
From: Aomx <julian.cordes@gmail.com>
Date: Tue, 29 Sep 2015 12:31:18 +0200
Subject: [PATCH] added state_free at error conditions, which were not handled
 before..

---
 gtests/net/packetdrill/code.c            | 1 +
 gtests/net/packetdrill/run.c             | 2 ++
 gtests/net/packetdrill/run_command.c     | 1 +
 gtests/net/packetdrill/run_system_call.c | 2 ++
 4 files changed, 6 insertions(+)

diff --git a/gtests/net/packetdrill/code.c b/gtests/net/packetdrill/code.c
index 085683a0..3f4dd74e 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 bb962e13..d6ff4af6 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 a55e596d..85c302b5 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 1a606a41..5f0fadb5 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);
-- 
GitLab