On 12/18/20 1:56 AM, Nikolay Shirokovskiy wrote:
Otherwise in some places we can mistakenly report
'unsupported' error instead
of root cause. So let's handle root cause explicitly from the macro.
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
---
src/libvirt-domain.c | 511 ++++++++++++++++++++++++++++++++++-----------------
src/libvirt-host.c | 18 +-
src/libvirt.c | 7 +-
3 files changed, 365 insertions(+), 171 deletions(-)
[...]
@@ -3005,8 +3019,11 @@ virDomainMigrateVersion3Full(virDomainPtr
domain,
return NULL;
params = tmp;
- if (VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn,
- VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION))
+ ret = VIR_DRV_SUPPORTS_FEATURE(domain->conn->driver, domain->conn,
+ VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION);
+ if (ret < 0)
+ return NULL;
+ if (ret)
Coverity complains this is a RESOURCE_LEAK for @tmp (or essentially @params)
Perhaps the hunk for VIR_DRV_SUPPORTS_FEATURE should go before
virTypedParamsCopy or use goto done (similar if !dom_xml)?
John
protection = VIR_MIGRATE_CHANGE_PROTECTION;
VIR_DEBUG("Begin3 %p", domain->conn);
@@ -3403,6 +3420,8 @@ virDomainMigrateUnmanagedParams(virDomainPtr domain,
[...]