[libvirt] [PATCH] qemu_hotplug: Initialize @charAlias in qemuDomainRemoveChrDevice

Michal Privoznik posted 1 patch 5 years, 2 months ago
Test syntax-check passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/38e6e6d335432d4b12b13d919d5767027d6fd37b.1550151072.git.mprivozn@redhat.com
src/qemu/qemu_hotplug.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
[libvirt] [PATCH] qemu_hotplug: Initialize @charAlias in qemuDomainRemoveChrDevice
Posted by Michal Privoznik 5 years, 2 months ago
My change in 112f3a8d0f32 was too drastic. The @charAlias
variable is initialized only if @monitor == true. However, it is
used even outside of that condition, at which point it's just
uninitialized pointer.

Reported-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_hotplug.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index a5c352f44b..78c9a77f2d 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -4754,13 +4754,12 @@ qemuDomainRemoveChrDevice(virQEMUDriverPtr driver,
     VIR_DEBUG("Removing character device %s from domain %p %s",
               chr->info.alias, vm, vm->def->name);
 
+    if (!(charAlias = qemuAliasChardevFromDevAlias(chr->info.alias)))
+        goto cleanup;
+
     if (monitor) {
-        if (!(charAlias = qemuAliasChardevFromDevAlias(chr->info.alias)))
-            goto cleanup;
-
         qemuDomainObjEnterMonitor(driver, vm);
         rc = qemuMonitorDetachCharDev(priv->mon, charAlias);
-
         if (qemuDomainObjExitMonitor(driver, vm) < 0)
             goto cleanup;
     }
-- 
2.19.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH] qemu_hotplug: Initialize @charAlias in qemuDomainRemoveChrDevice
Posted by John Ferlan 5 years, 2 months ago

On 2/14/19 8:31 AM, Michal Privoznik wrote:
> My change in 112f3a8d0f32 was too drastic. The @charAlias
> variable is initialized only if @monitor == true. However, it is
> used even outside of that condition, at which point it's just
> uninitialized pointer.
> 
> Reported-by: John Ferlan <jferlan@redhat.com>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>  src/qemu/qemu_hotplug.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 

Reviewed-by: John Ferlan <jferlan@redhat.com>

John

> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index a5c352f44b..78c9a77f2d 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -4754,13 +4754,12 @@ qemuDomainRemoveChrDevice(virQEMUDriverPtr driver,
>      VIR_DEBUG("Removing character device %s from domain %p %s",
>                chr->info.alias, vm, vm->def->name);
>  
> +    if (!(charAlias = qemuAliasChardevFromDevAlias(chr->info.alias)))
> +        goto cleanup;
> +
>      if (monitor) {
> -        if (!(charAlias = qemuAliasChardevFromDevAlias(chr->info.alias)))
> -            goto cleanup;
> -
>          qemuDomainObjEnterMonitor(driver, vm);
>          rc = qemuMonitorDetachCharDev(priv->mon, charAlias);
> -

Unrelated, but IDC.

>          if (qemuDomainObjExitMonitor(driver, vm) < 0)
>              goto cleanup;
>      }
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list