[PATCH] util: don't validate empty params

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If there are no parameters, there is nothing to validate.
If params == NULL, memcpy below results in memcpy(sorted, NULL, 0),
which is UB.

Found by UBSAN. Example of this codepath: virDomainBlockCopy()
(where nparams == 0 is valid) -> qemuDomainBlockCopy()

Signed-off-by: Oleg Vasilev <oleg.vasilev@xxxxxxxxxxxxx>
---
 src/util/virtypedparam.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/util/virtypedparam.c b/src/util/virtypedparam.c
index 3bb8b125e9..ef3b8052f6 100644
--- a/src/util/virtypedparam.c
+++ b/src/util/virtypedparam.c
@@ -68,6 +68,10 @@ virTypedParamsValidate(virTypedParameterPtr params, int nparams, ...)
     g_autofree virTypedParameterPtr sorted = NULL;
     g_autofree virTypedParameterPtr keys = NULL;
 
+    if (!nparams) {
+        return 0;
+    }
+
     va_start(ap, nparams);
 
     sorted = g_new0(virTypedParameter, nparams);
-- 
2.41.0




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux