diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c index 77a73689..b144d6e5 100644 --- a/libweston/compositor-wayland.c +++ b/libweston/compositor-wayland.c @@ -1245,7 +1245,7 @@ static struct wayland_output * wayland_output_create_common(const char *name) { struct wayland_output *output; - size_t len; + char *title; /* name can't be NULL. */ assert(name); @@ -1256,21 +1256,16 @@ wayland_output_create_common(const char *name) return NULL; } - output->base.destroy = wayland_output_destroy; - output->base.disable = wayland_output_disable; - output->base.enable = wayland_output_enable; - output->base.name = strdup(name); - - /* setup output name/title. */ - len = strlen(WINDOW_TITLE " - ") + strlen(name) + 1; - output->title = zalloc(len); - if (!output->title) { - free(output->base.name); + if (asprintf(&title, "%s - %s", WINDOW_TITLE, name) < 0) { free(output); return NULL; } + output->title = title; - snprintf(output->title, len, WINDOW_TITLE " - %s", name); + output->base.destroy = wayland_output_destroy; + output->base.disable = wayland_output_disable; + output->base.enable = wayland_output_enable; + output->base.name = strdup(name); return output; }