aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-12-21 12:05:05 +0100
committerFurkan Sahin <furkan-dev@proton.me>2021-12-21 12:05:05 +0100
commit5341bb2329d8da2491b6d7c35d09f25fe2ef43f6 (patch)
treee94fcd1ac98f17f97b6aa30ed50c4605064bcc02
parent7786805c78f6976af4ae41c5c2ebe6ce112c175b (diff)
Add cairo_image_surface_create error handling
cairo_image_surface_create can fail, e.g. when running out of memory or when the size is too big. Avoid crashing in this case. Closes: https://github.com/swaywm/sway/issues/6531
-rw-r--r--sway/tree/container.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 132b6819..e5149fb6 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -536,6 +536,13 @@ static void render_titlebar_text_texture(struct sway_output *output,
cairo_surface_t *surface = cairo_image_surface_create(
CAIRO_FORMAT_ARGB32, width, height);
+ cairo_status_t status = cairo_surface_status(surface);
+ if (status != CAIRO_STATUS_SUCCESS) {
+ sway_log(SWAY_ERROR, "cairo_image_surface_create failed: %s",
+ cairo_status_to_string(status));
+ return;
+ }
+
cairo_t *cairo = cairo_create(surface);
cairo_set_antialias(cairo, CAIRO_ANTIALIAS_BEST);
cairo_set_font_options(cairo, fo);