[libvirt] [PATCH 0/2] URGENT: Fix TLS migration

TLS would not be enabled for migration even when requested. This is a regression introduced in the migration params refactoring series pushed in this devel cycle. Peter Krempa (2): qemu: migration: Move and unexport qemuMigrationParamsSetString qemu: migration: Set the 'set' boolean in qemuMigrationParamsSetString src/qemu/qemu_migration_params.c | 41 +++++++++++++++++++++++++--------------- src/qemu/qemu_migration_params.h | 5 ----- 2 files changed, 26 insertions(+), 20 deletions(-) -- 2.16.2

The function is not used outside of the src/qemu/qemu_migration_params.c file so unexport it. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_params.c | 30 +++++++++++++++--------------- src/qemu/qemu_migration_params.h | 5 ----- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c index 3bbe50a8ed..c5d7ab9016 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -777,6 +777,21 @@ qemuMigrationParamsApply(virQEMUDriverPtr driver, } +static int +qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, + qemuMigrationParam param, + const char *value) +{ + if (qemuMigrationParamsCheckType(param, QEMU_MIGRATION_PARAM_TYPE_STRING) < 0) + return -1; + + if (VIR_STRDUP(migParams->params[param].value.s, value) < 0) + return -1; + + return 0; +} + + /* qemuMigrationParamsEnableTLS * @driver: pointer to qemu driver * @vm: domain object @@ -967,21 +982,6 @@ qemuMigrationParamsFetch(virQEMUDriverPtr driver, } -int -qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, - qemuMigrationParam param, - const char *value) -{ - if (qemuMigrationParamsCheckType(param, QEMU_MIGRATION_PARAM_TYPE_STRING) < 0) - return -1; - - if (VIR_STRDUP(migParams->params[param].value.s, value) < 0) - return -1; - - return 0; -} - - /** * Returns -1 on error, * 0 on success, diff --git a/src/qemu/qemu_migration_params.h b/src/qemu/qemu_migration_params.h index c3484ed1c0..9a865b19f3 100644 --- a/src/qemu/qemu_migration_params.h +++ b/src/qemu/qemu_migration_params.h @@ -112,11 +112,6 @@ qemuMigrationParamsFetch(virQEMUDriverPtr driver, int asyncJob, qemuMigrationParamsPtr *migParams); -int -qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, - qemuMigrationParam param, - const char *value); - int qemuMigrationParamsGetULL(qemuMigrationParamsPtr migParams, qemuMigrationParam param, -- 2.16.2

On Fri, Apr 27, 2018 at 03:16:45PM +0200, Peter Krempa wrote:
The function is not used outside of the src/qemu/qemu_migration_params.c file so unexport it.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_params.c | 30 +++++++++++++++--------------- src/qemu/qemu_migration_params.h | 5 ----- 2 files changed, 15 insertions(+), 20 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

The code setting TLS parameters verifies that TLS is supported by looking at the dump of parameters which will be reset after migration, but sets the parameters in the list of new parameters. As qemuMigrationParamsSetString did not set the 'set' property, the TLS parameters would not be used. This is a regression after the series refactoring migration parameters and it resulted into TLS not being used even when requested. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_params.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c index c5d7ab9016..578cd6671f 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -777,6 +777,15 @@ qemuMigrationParamsApply(virQEMUDriverPtr driver, } +/** + * qemuMigrationParamsSetString: + * @migrParams: migration parameter object + * @param: parameter to set + * @value: new value + * + * Enables and sets the migration parameter @param in @migrParams. Returns 0 on + * success and -1 on error. Libvirt error is reported. + */ static int qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, qemuMigrationParam param, @@ -788,6 +797,8 @@ qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, if (VIR_STRDUP(migParams->params[param].value.s, value) < 0) return -1; + migParams->params[param].set = true; + return 0; } -- 2.16.2

On Fri, Apr 27, 2018 at 03:16:46PM +0200, Peter Krempa wrote:
The code setting TLS parameters verifies that TLS is supported by looking at the dump of parameters which will be reset after migration, but sets the parameters in the list of new parameters. As qemuMigrationParamsSetString did not set the 'set' property, the TLS parameters would not be used.
This is a regression after the series refactoring migration parameters and it resulted into TLS not being used even when requested.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_params.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Fri, Apr 27, 2018 at 03:16:46PM +0200, Peter Krempa wrote:
The code setting TLS parameters verifies that TLS is supported by looking at the dump of parameters which will be reset after migration, but sets the parameters in the list of new parameters. As qemuMigrationParamsSetString did not set the 'set' property, the TLS parameters would not be used.
This is a regression after the series refactoring migration parameters and it resulted into TLS not being used even when requested.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_migration_params.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c index c5d7ab9016..578cd6671f 100644 --- a/src/qemu/qemu_migration_params.c +++ b/src/qemu/qemu_migration_params.c @@ -777,6 +777,15 @@ qemuMigrationParamsApply(virQEMUDriverPtr driver, }
+/** + * qemuMigrationParamsSetString: + * @migrParams: migration parameter object
s/migrP/migP/
+ * @param: parameter to set + * @value: new value + * + * Enables and sets the migration parameter @param in @migrParams. Returns 0 on
Here too. Jano
+ * success and -1 on error. Libvirt error is reported. + */ static int qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, qemuMigrationParam param, @@ -788,6 +797,8 @@ qemuMigrationParamsSetString(qemuMigrationParamsPtr migParams, if (VIR_STRDUP(migParams->params[param].value.s, value) < 0) return -1;
+ migParams->params[param].set = true; + return 0; }
-- 2.16.2
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
participants (3)
-
Daniel P. Berrangé
-
Ján Tomko
-
Peter Krempa