]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
sockets: fixed building for Windows with compilers without VLA support
authorEvgeny Grin <k2k@narod.ru>
Fri, 26 Nov 2021 10:50:52 +0000 (13:50 +0300)
committerEvgeny Grin <k2k@narod.ru>
Fri, 26 Nov 2021 16:00:31 +0000 (19:00 +0300)
Signed-off-by: Evgeny Grin <k2k@narod.ru>
lib/system/sockets.c

index 5990d2dfa6d27b27cfc8e97ad3854b31b02494e9..57c14f63b8c192b614475536720dde45bf1b544c 100644 (file)
@@ -84,12 +84,15 @@ ssize_t
 system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
              int iovec_cnt)
 {
-       WSABUF bufs[iovec_cnt];
+       WSABUF bufs[32];
        DWORD bytes_sent;
-       int to_send_cnt = 0;
+       DWORD to_send_cnt = 0;
        size_t to_send_bytes = 0;
 
-       while (to_send_cnt < iovec_cnt && to_send_bytes < SSIZE_MAX) {
+       if ((size_t)iovec_cnt > sizeof(bufs) / sizeof(bufs[0]))
+               iovec_cnt = sizeof(bufs) / sizeof(bufs[0]);
+
+       while (to_send_cnt < (DWORD)iovec_cnt && to_send_bytes < SSIZE_MAX) {
                bufs[to_send_cnt].buf = iovec[to_send_cnt].iov_base;
 
                if (to_send_bytes + iovec[to_send_cnt].iov_len > SSIZE_MAX) {