tests/qtest/netdev-socket: Avoid variable-length array in inet_get_free_port_multiple()

We use a variable-length array in inet_get_free_port_multiple().
This is only test code called at the start of a test, so switch to a
heap allocation instead.

The codebase has very few VLAs, and if we can get rid of them all we
can make the compiler error on new additions.  This is a defensive
measure against security bugs where an on-stack dynamic allocation
isn't correctly size-checked (e.g.  CVE-2021-3527).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20230824164535.2652070-1-peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Peter Maydell 2023-08-24 17:45:35 +01:00 committed by Thomas Huth
parent 0a1e462daf
commit b2a7d8633f

View File

@ -82,7 +82,7 @@ static int inet_get_free_port_socket_ipv6(int sock)
static int inet_get_free_port_multiple(int nb, int *port, bool ipv6)
{
int sock[nb];
g_autofree int *sock = g_new(int, nb);
int i;
for (i = 0; i < nb; i++) {