conf: avoid null deref during storage probe
Commit 5c43e2e introduced a NULL deref if there is a failure in virStorageFileGetMetadataInternal. * src/util/virstoragefile.c (virStorageFileGetMetadataFromBuf): Fix error handling. Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
0e285a588a
commit
c9679edca9
@ -999,21 +999,21 @@ virStorageFileGetMetadataFromBuf(const char *path,
|
|||||||
int *backingFormat)
|
int *backingFormat)
|
||||||
{
|
{
|
||||||
virStorageSourcePtr ret = NULL;
|
virStorageSourcePtr ret = NULL;
|
||||||
|
virStorageSourcePtr meta = NULL;
|
||||||
|
|
||||||
if (!(ret = virStorageFileMetadataNew(path, format)))
|
if (!(meta = virStorageFileMetadataNew(path, format)))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (virStorageFileGetMetadataInternal(ret, buf, len,
|
if (virStorageFileGetMetadataInternal(meta, buf, len,
|
||||||
backingFormat) < 0) {
|
backingFormat) < 0)
|
||||||
virStorageSourceFree(ret);
|
goto cleanup;
|
||||||
ret = NULL;
|
if (VIR_STRDUP(*backing, meta->backingStoreRaw) < 0)
|
||||||
}
|
goto cleanup;
|
||||||
|
|
||||||
if (VIR_STRDUP(*backing, ret->backingStoreRaw) < 0) {
|
|
||||||
virStorageSourceFree(ret);
|
|
||||||
ret = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
ret = meta;
|
||||||
|
meta = NULL;
|
||||||
|
cleanup:
|
||||||
|
virStorageSourceFree(meta);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user