Add test for buffer overflow 05/316205/3
authorKrzysztof Malysa <k.malysa@samsung.com>
Wed, 11 Dec 2024 14:04:36 +0000 (15:04 +0100)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Wed, 11 Dec 2024 14:22:37 +0000 (15:22 +0100)
Change-Id: Iaeeb5cbfb4e73eb15c0c4f47a25d9e2a503c1bce

tests/serialization-test.cpp

index 147a055ec2851af2cde0a36f023ca1f20eb9f405..94a1e8ccdb900931eae63f2c47d24e7f6509ad2b 100644 (file)
@@ -18,6 +18,7 @@
  * @version     1.0
  * @brief       Unit tests for serialization
  */
+#include <cstddef>
 #include <cstring>
 #include <gtest/gtest.h>
 #include <unistd.h>
@@ -1308,4 +1309,13 @@ TEST_F(WAuthnSerializationTest, message_buffer_clear_Positive)
     EXPECT_NO_THROW(buffer.Clear());
 }
 
+TEST_F(WAuthnSerializationTest, message_buffer_reading_payload_size_Positive) {
+    MessageBuffer buffer;
+    buffer.InitForInput();
+    size_t msgSizeCausingRealloc = buffer.InputSize() + 1 - sizeof(size_t);
+    memcpy(buffer.Ptr(), &msgSizeCausingRealloc, sizeof(size_t));
+    EXPECT_EQ(buffer.PayloadSize(), msgSizeCausingRealloc);
+    EXPECT_GE(buffer.InputSize(), msgSizeCausingRealloc + sizeof(size_t));
+}
+
 } // namespace WA