From f8da1dfaabff3522c5547d774f9befe2017d5e60 Mon Sep 17 00:00:00 2001
From: Michael Tuexen <tuexen@fh-muenster.de>
Date: Tue, 28 Jun 2016 20:16:44 +0200
Subject: [PATCH] When unescaping a string, the last zero byte from the input
 string must be copied to the output string. The space required for that extra
 byte must also be allocated.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com>
---
 gtests/net/packetdrill/script.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gtests/net/packetdrill/script.c b/gtests/net/packetdrill/script.c
index 250dcd4c..3b8c373a 100644
--- a/gtests/net/packetdrill/script.c
+++ b/gtests/net/packetdrill/script.c
@@ -266,7 +266,7 @@ char *flags_to_string(struct flag_name *flags_array, u64 flags)
 static int unescape_cstring_expression(const char *input_string,
 				       struct expression *out, char **error)
 {
-	int bytes = strlen(input_string);
+	int bytes = strlen(input_string) + 1;
 	out->type = EXPR_STRING;
 	out->value.string = (char *)malloc(bytes);
 	const char *c_in = input_string;
@@ -305,6 +305,7 @@ static int unescape_cstring_expression(const char *input_string,
 		++c_in;
 		++c_out;
 	}
+	*c_out = *c_in;
 	return STATUS_OK;
 }
 
-- 
GitLab