[libvirt] [PATCH] qemu: Avoid needless copies of static strings
Erik Skultety
eskultet at redhat.com
Thu Jun 30 12:00:19 UTC 2016
On 30/06/16 10:03, Jiri Denemark wrote:
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
> src/qemu/qemu_hotplug.c | 21 +++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index bf6430d..f88520f 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -3931,7 +3931,8 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
> {
> qemuDomainObjPrivatePtr priv = vm->privateData;
> time_t now = time(NULL);
> - char expire_time [64];
> + const char *expire;
> + char *validTo = NULL;
> const char *connected = NULL;
> const char *password;
> int ret = -1;
> @@ -3962,19 +3963,18 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
> if (ret != 0)
> goto end_job;
>
> - if (password[0] == '\0') {
> - snprintf(expire_time, sizeof(expire_time), "now");
> + if (password[0] == '\0' ||
> + (auth->expires && auth->validTo <= now)) {
> + expire = "now";
> } else if (auth->expires) {
> - time_t lifetime = auth->validTo - now;
> - if (lifetime <= 0)
> - snprintf(expire_time, sizeof(expire_time), "now");
> - else
> - snprintf(expire_time, sizeof(expire_time), "%lu", (long unsigned)auth->validTo);
> + if (virAsprintf(&validTo, "%lu", (unsigned long) auth->validTo) < 0)
> + goto end_job;
> + expire = validTo;
> } else {
> - snprintf(expire_time, sizeof(expire_time), "never");
> + expire = "never";
> }
>
> - ret = qemuMonitorExpirePassword(priv->mon, type, expire_time);
> + ret = qemuMonitorExpirePassword(priv->mon, type, expire);
>
> if (ret == -2) {
> /* XXX we could fake this with a timer */
> @@ -3991,6 +3991,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
> if (qemuDomainObjExitMonitor(driver, vm) < 0)
> ret = -1;
> cleanup:
> + VIR_FREE(validTo);
> virObjectUnref(cfg);
> return ret;
> }
>
ACK
Erik
More information about the libvir-list
mailing list