mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 17:34:18 +03:00
storage: Don't allow encryption secretPath to be NULL
Allowing a NULL @secretPath for virStorageBackendCreateQemuImgCmdFromVol would result in a generated command line with a dangling "file=" output. So let's make sure the @secretPath exists before processing. This means we should pass a dummy path from the storage test. Signed-off-by: John Ferlan <jferlan@redhat.com> ACKed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
5b603a7870
commit
b056e09b28
@ -1233,6 +1233,11 @@ virStorageBackendCreateQemuImgCmdFromVol(virStoragePoolObjPtr pool,
|
|||||||
|
|
||||||
if (info.format == VIR_STORAGE_FILE_RAW && vol->target.encryption &&
|
if (info.format == VIR_STORAGE_FILE_RAW && vol->target.encryption &&
|
||||||
vol->target.encryption->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) {
|
vol->target.encryption->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) {
|
||||||
|
if (!info.secretPath) {
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
|
_("path to secret data file is required"));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
if (virAsprintf(&info.secretAlias, "%s_encrypt0", vol->name) < 0)
|
if (virAsprintf(&info.secretAlias, "%s_encrypt0", vol->name) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
if (storageBackendCreateQemuImgSecretObject(cmd, info.secretPath,
|
if (storageBackendCreateQemuImgSecretObject(cmd, info.secretPath,
|
||||||
|
@ -82,7 +82,7 @@ testCompareXMLToArgvFiles(bool shouldFail,
|
|||||||
cmd = virStorageBackendCreateQemuImgCmdFromVol(obj, vol,
|
cmd = virStorageBackendCreateQemuImgCmdFromVol(obj, vol,
|
||||||
inputvol, flags,
|
inputvol, flags,
|
||||||
create_tool,
|
create_tool,
|
||||||
NULL);
|
"/path/to/secretFile");
|
||||||
if (!cmd) {
|
if (!cmd) {
|
||||||
if (shouldFail) {
|
if (shouldFail) {
|
||||||
virResetLastError();
|
virResetLastError();
|
||||||
|
Loading…
Reference in New Issue
Block a user