aboutsummaryrefslogtreecommitdiff
path: root/util/iov.c
diff options
context:
space:
mode:
authorPhilippe Mathieu-Daudé <philmd@redhat.com>2023-08-24 17:47:06 +0100
committerEric Blake <eblake@redhat.com>2023-09-07 20:32:11 -0500
commit522a9b94e0f8a1f89f1660a46121ab0d0eae3593 (patch)
treee201cce3f8b3c6637e9bc6f7795151dd94b01cb3 /util/iov.c
parent06e0f098d612df79597de58121dadf6f5f375d04 (diff)
downloadqemu-522a9b94e0f8a1f89f1660a46121ab0d0eae3593.zip
qemu-522a9b94e0f8a1f89f1660a46121ab0d0eae3593.tar.gz
qemu-522a9b94e0f8a1f89f1660a46121ab0d0eae3593.tar.bz2
util/iov: Avoid dynamic stack allocation
Use autofree heap allocation instead of variable-length array on the stack. 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: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-ID: <20230824164706.2652277-1-peter.maydell@linaro.org> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'util/iov.c')
-rw-r--r--util/iov.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/util/iov.c b/util/iov.c
index 866fb57..7e73948 100644
--- a/util/iov.c
+++ b/util/iov.c
@@ -571,7 +571,7 @@ static int sortelem_cmp_src_index(const void *a, const void *b)
*/
void qemu_iovec_clone(QEMUIOVector *dest, const QEMUIOVector *src, void *buf)
{
- IOVectorSortElem sortelems[src->niov];
+ g_autofree IOVectorSortElem *sortelems = g_new(IOVectorSortElem, src->niov);
void *last_end;
int i;