mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
Coverity: Resolve a RESOURCE_LEAK
On error the lofd would have been leaked.
This commit is contained in:
parent
e38264f310
commit
c668cd50cb
@ -383,6 +383,7 @@ static int virLXCControllerSetupLoopDeviceDisk(virDomainDiskDefPtr disk)
|
||||
int lofd;
|
||||
char *loname = NULL;
|
||||
const char *src = virDomainDiskGetSource(disk);
|
||||
int ret = -1;
|
||||
|
||||
if ((lofd = virFileLoopDeviceAssociate(src, &loname)) < 0)
|
||||
return -1;
|
||||
@ -395,13 +396,18 @@ static int virLXCControllerSetupLoopDeviceDisk(virDomainDiskDefPtr disk)
|
||||
* the rest of container setup 'just works'
|
||||
*/
|
||||
virDomainDiskSetType(disk, VIR_DOMAIN_DISK_TYPE_BLOCK);
|
||||
if (virDomainDiskSetSource(disk, loname) < 0) {
|
||||
VIR_FREE(loname);
|
||||
return -1;
|
||||
}
|
||||
if (virDomainDiskSetSource(disk, loname) < 0)
|
||||
goto cleanup;
|
||||
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(loname);
|
||||
if (ret < 0)
|
||||
VIR_FORCE_CLOSE(lofd);
|
||||
|
||||
return lofd;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user