From e2ef39fae5ffb576cdc4d924cf0b67393138168d Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Mon, 25 Mar 2019 11:33:32 +0100 Subject: [PATCH] Fix overflow in test The serialized text is not nul-terminated (its size is explicitely provided), but the input text in the event is a nul-terminated string. The test was failing with ASAN enabled. --- app/tests/test_control_event_serialize.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/tests/test_control_event_serialize.c b/app/tests/test_control_event_serialize.c index f6034370..90b75fff 100644 --- a/app/tests/test_control_event_serialize.c +++ b/app/tests/test_control_event_serialize.c @@ -49,13 +49,14 @@ static void test_serialize_text_event(void) { static void test_serialize_long_text_event(void) { struct control_event event; event.type = CONTROL_EVENT_TYPE_TEXT; - char text[TEXT_MAX_LENGTH]; + char text[TEXT_MAX_LENGTH + 1]; memset(text, 'a', sizeof(text)); + text[TEXT_MAX_LENGTH] = '\0'; event.text_event.text = text; unsigned char buf[SERIALIZED_EVENT_MAX_SIZE]; int size = control_event_serialize(&event, buf); - assert(size == 3 + sizeof(text)); + assert(size == 3 + TEXT_MAX_LENGTH); unsigned char expected[3 + TEXT_MAX_LENGTH]; expected[0] = 0x01; // CONTROL_EVENT_TYPE_KEYCODE -- GitLab