
On 05/18/2015 05:44 PM, Maxim Nestratov wrote:
Don't forget to unlock domain on error path
Signed-off-by: Maxim Nestratov <mnestratov@parallels.com> --- src/parallels/parallels_sdk.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c index 786e0ad..faae1ae 100644 --- a/src/parallels/parallels_sdk.c +++ b/src/parallels/parallels_sdk.c @@ -1443,8 +1443,10 @@ prlsdkAddDomain(parallelsConnPtr privconn, const unsigned char *uuid) }
sdkdom = prlsdkSdkDomainLookupByUUID(privconn, uuid); - if (sdkdom == PRL_INVALID_HANDLE) + if (sdkdom == PRL_INVALID_HANDLE) { + virObjectUnlock(dom); return NULL; + }
dom = prlsdkLoadDomain(privconn, sdkdom, NULL); PrlHandle_Free(sdkdom);
Is it really needed? dom is always NULL on this error path. dom = virDomainObjListFindByUUID(privconn->domains, uuid); if (dom) { /* domain is already in the list */ return dom; } sdkdom = prlsdkSdkDomainLookupByUUID(privconn, uuid); if (sdkdom == PRL_INVALID_HANDLE) return NULL;