From 96e8e9b098e4828935a5d6b149e63e819cc86482 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 12 Dec 2019 19:06:34 +0100 Subject: [PATCH] buffer: improve error handling In case the texture can't be imported, release the buffer so that the client can submit another one. In case the allocation fails, disconnect the client. --- types/wlr_buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/types/wlr_buffer.c b/types/wlr_buffer.c index 9d079b9a..1a95bcc2 100644 --- a/types/wlr_buffer.c +++ b/types/wlr_buffer.c @@ -96,12 +96,14 @@ struct wlr_buffer *wlr_buffer_create(struct wlr_renderer *renderer, if (texture == NULL) { wlr_log(WLR_ERROR, "Failed to upload texture"); + wl_buffer_send_release(resource); return NULL; } struct wlr_buffer *buffer = calloc(1, sizeof(struct wlr_buffer)); if (buffer == NULL) { wlr_texture_destroy(texture); + wl_resource_post_no_memory(resource); return NULL; } buffer->resource = resource;