From ecbad0341e32a824ee8a5feb7e639672b1284b2c Mon Sep 17 00:00:00 2001 From: Iskren Chernev Date: Fri, 11 Mar 2011 14:43:10 +0200 Subject: [PATCH] Added wl_connection_create failure checks. --- wayland/connection.c | 2 ++ wayland/wayland-client.c | 7 ++++++- wayland/wayland-server.c | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/wayland/connection.c b/wayland/connection.c index 4a004705..0d705b5d 100644 --- a/wayland/connection.c +++ b/wayland/connection.c @@ -160,6 +160,8 @@ wl_connection_create(int fd, struct wl_connection *connection; connection = malloc(sizeof *connection); + if (connection == NULL) + return NULL; memset(connection, 0, sizeof *connection); connection->fd = fd; connection->update = update; diff --git a/wayland/wayland-client.c b/wayland/wayland-client.c index 0be1c479..1e9f915b 100644 --- a/wayland/wayland-client.c +++ b/wayland/wayland-client.c @@ -394,7 +394,12 @@ wl_display_connect(const char *name) display->connection = wl_connection_create(display->fd, connection_update, display); - + if (display->connection == NULL) { + wl_hash_table_destroy(display->objects); + close(display->fd); + free(display); + return NULL; + } return display; } diff --git a/wayland/wayland-server.c b/wayland/wayland-server.c index 99b9f336..faa1e1ad 100644 --- a/wayland/wayland-server.c +++ b/wayland/wayland-server.c @@ -226,6 +226,10 @@ wl_client_create(struct wl_display *display, int fd) wl_client_connection_data, client); client->connection = wl_connection_create(fd, wl_client_connection_update, client); + if (client->connection == NULL) { + free(client); + return NULL; + } wl_list_init(&client->resource_list);