Paul Gofman : ws2_32/tests: Add tests for zero option length in test_set_getsockopt().

Alexandre Julliard julliard at winehq.org
Tue Mar 8 16:10:50 CST 2022


Module: wine
Branch: master
Commit: 8fef57b1ef5c81a73441bae6288404f7bb169043
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8fef57b1ef5c81a73441bae6288404f7bb169043

Author: Paul Gofman <pgofman at codeweavers.com>
Date:   Tue Mar  8 12:22:47 2022 +0300

ws2_32/tests: Add tests for zero option length in test_set_getsockopt().

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ws2_32/tests/sock.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 1fc8d132b63..0fab10b4d70 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -1459,6 +1459,27 @@ static void test_set_getsockopt(void)
         }
         ok(size == (test_optsize[i].optname == SO_OPENTYPE ? 4 : -1), "Got unexpected size %d.\n", size);
 
+        if (test_optsize[i].level == SOL_SOCKET && test_optsize[i].bool_value)
+        {
+            expected_err = 0;
+            expected_last_error = 0;
+        }
+        else
+        {
+            expected_err = -1;
+            expected_last_error = WSAEFAULT;
+        }
+        value = 1;
+        SetLastError(0xdeadbeef);
+        err = setsockopt(s2, test_optsize[i].level, test_optsize[i].optname, (char*)&value, 0);
+        ok(err == expected_err, "Unexpected setsockopt result %d.\n", err);
+        ok(WSAGetLastError() == expected_last_error, "Unexpected WSAGetLastError() %u.\n", WSAGetLastError());
+
+        size = 0;
+        err = getsockopt(s2, test_optsize[i].level, test_optsize[i].optname, (char*)&value, &size);
+        ok(err == -1, "Unexpected getsockopt result %d.\n", err);
+        ok(WSAGetLastError() == WSAEFAULT, "Unexpected WSAGetLastError() %u.\n", WSAGetLastError());
+
         expected_size = test_optsize[i].sizes[2];
         if (expected_size == 1)
             expected_value = 0xdeadbe00;




More information about the wine-cvs mailing list