[PATCH 1/2] server: don't leak fd on error
Marek Chalupa
mchqwerty at gmail.com
Wed Aug 6 03:26:44 PDT 2014
Sorry, my bad, this will be closed by wl_socket_destroy, therefore this
patch is useless.
Regards,
Marek
On 08/06/14 12:18, Marek Chalupa wrote:
> close opened fd if an error occur.
> ---
> src/wayland-server.c | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/src/wayland-server.c b/src/wayland-server.c
> index 3c162d4..ce7bbff 100644
> --- a/src/wayland-server.c
> +++ b/src/wayland-server.c
> @@ -1119,23 +1119,28 @@ _wl_display_add_socket(struct wl_display *display, struct wl_socket *s)
> size = offsetof (struct sockaddr_un, sun_path) + strlen(s->addr.sun_path);
> if (bind(s->fd, (struct sockaddr *) &s->addr, size) < 0) {
> wl_log("bind() failed with error: %m\n");
> - return -1;
> + goto err;
> }
>
> if (listen(s->fd, 1) < 0) {
> wl_log("listen() failed with error: %m\n");
> - return -1;
> + goto err;
> }
>
> s->source = wl_event_loop_add_fd(display->loop, s->fd,
> WL_EVENT_READABLE,
> socket_data, display);
> - if (s->source == NULL) {
> - return -1;
> - }
> + if (s->source == NULL)
> + goto err;
>
> wl_list_insert(display->socket_list.prev, &s->link);
> return 0;
> +
> +err:
> + close(s->fd);
> + s->fd = -1;
> +
> + return -1;
> }
>
> WL_EXPORT const char *
More information about the wayland-devel
mailing list