src/qemu/qemu_driver.c | 3 +++ 1 file changed, 3 insertions(+)
This is similar to one of my previous commits (v10.7.0-rc1~22)
which introduce a check that <bandwidth/> values fit into certain
limits. My original commit validated values when parsing
<bandwidth/> XML, but completely missed the case when values are
set over virDomainSetInterfaceParameters() API.
Solution is simple - just perform validation after bandwidth
structure is reconstructed from arguments passed to the API.
Resolves: https://issues.redhat.com/browse/RHEL-65372
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_driver.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d1b32de56a..09f7edda7d 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -9883,6 +9883,9 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
if (!bandwidth->out->average)
VIR_FREE(bandwidth->out);
+ if (!virNetDevBandwidthValidate(bandwidth))
+ goto endjob;
+
if (net) {
newBandwidth = g_new0(virNetDevBandwidth, 1);
--
2.45.2
On Wed, Nov 27, 2024 at 12:30:05 +0100, Michal Privoznik wrote: > This is similar to one of my previous commits (v10.7.0-rc1~22) > which introduce a check that <bandwidth/> values fit into certain s/introduce/introduced/ > limits. My original commit validated values when parsing > <bandwidth/> XML, but completely missed the case when values are > set over virDomainSetInterfaceParameters() API. > > Solution is simple - just perform validation after bandwidth > structure is reconstructed from arguments passed to the API. > > Resolves: https://issues.redhat.com/browse/RHEL-65372 > Signed-off-by: Michal Privoznik <mprivozn@redhat.com> > --- > src/qemu/qemu_driver.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index d1b32de56a..09f7edda7d 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -9883,6 +9883,9 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, > if (!bandwidth->out->average) > VIR_FREE(bandwidth->out); > > + if (!virNetDevBandwidthValidate(bandwidth)) > + goto endjob; > + > if (net) { > newBandwidth = g_new0(virNetDevBandwidth, 1); > Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
© 2016 - 2024 Red Hat, Inc.