aboutsummaryrefslogtreecommitdiff
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
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>
-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;