[vlc-devel] [PATCH 09/12] network: io: Remove VLA usages

Hugo Beauzée-Luyssen hugo at beauzee.fr
Tue Dec 8 15:19:13 CET 2020


---
 src/network/io.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/network/io.c b/src/network/io.c
index 5285edc169..d4f15fe115 100644
--- a/src/network/io.c
+++ b/src/network/io.c
@@ -313,7 +313,9 @@ int net_Accept(vlc_object_t *obj, int *fds)
     while (fds[n] != -1)
         n++;
 
-    struct pollfd ufd[n];
+    struct pollfd *ufd = malloc(n * sizeof((*ufd)));
+    if (!ufd)
+        return -1;
     /* Initialize file descriptor set */
     for (unsigned i = 0; i < n; i++)
     {
@@ -328,6 +330,7 @@ int net_Accept(vlc_object_t *obj, int *fds)
             if (net_errno != EINTR)
             {
                 msg_Err(obj, "poll error: %s", vlc_strerror_c(net_errno));
+                free(ufd);
                 return -1;
             }
         }
@@ -359,9 +362,11 @@ int net_Accept(vlc_object_t *obj, int *fds)
              */
             memmove(fds + i, fds + i + 1, n - (i + 1));
             fds[n - 1] = sfd;
+            free(ufd);
             return fd;
         }
     }
+    free(ufd);
     return -1;
 }
 
-- 
2.29.2



More information about the vlc-devel mailing list