Commit d05a39d0a68b573541bb6d43c04fb89ac1a7a61d

Philipp Wiesemann 2016-11-18T00:05:54

Wayland: Fixed file descriptor leaks if device was not initialized.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
diff --git a/src/video/wayland/SDL_waylanddatamanager.c b/src/video/wayland/SDL_waylanddatamanager.c
index 323eff7..d1feb73 100644
--- a/src/video/wayland/SDL_waylanddatamanager.c
+++ b/src/video/wayland/SDL_waylanddatamanager.c
@@ -347,10 +347,10 @@ Wayland_data_offer_receive(SDL_WaylandDataOffer *offer,
 
     if (offer == NULL) {
         SDL_SetError("Invalid data offer");
-    } else if (pipe2(pipefd, O_CLOEXEC|O_NONBLOCK) == -1) {
-        SDL_SetError("Could not read pipe");
     } else if ((data_device = offer->data_device) == NULL) {
         SDL_SetError("Data device not initialized");
+    } else if (pipe2(pipefd, O_CLOEXEC|O_NONBLOCK) == -1) {
+        SDL_SetError("Could not read pipe");
     } else {
         wl_data_offer_receive(offer->offer, mime_type, pipefd[1]);