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 <
casc...@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 f669203..861b5b6 100644
--- a/gtests/net/packetdrill/script.c
+++ b/gtests/net/packetdrill/script.c
@@ -216,7 +216,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;
@@ -255,6 +255,7 @@ static int unescape_cstring_expression(const char *input_string,
++c_in;
++c_out;
}
+ *c_out = *c_in;
return STATUS_OK;
}
--
2.7.4