summaryrefslogtreecommitdiff
path: root/dev-util/cmake/files/cmake-3.17.4-uv-check-return.patch
blob: ab4a45a3ec1ef194380222c1e8558b71319c2962 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From 0fddcc1e5bd8e4672b09e2478edb72e5c0338f1b Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Wed, 1 Jul 2020 16:23:56 -0400
Subject: [PATCH] cmake: Tolerate nullptr from uv_default_loop

`uv_default_loop()` can return `nullptr` when running on a Linux kernel
configured without `CONFIG_EVENTFD`.

Fixes: #20899
---
 Source/cmSystemTools.cxx | 4 +++-
 Source/cmakemain.cxx     | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index be799b0402..2f08b840cd 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -823,7 +823,9 @@ void cmSystemTools::InitializeLibUV()
   // Perform libuv one-time initialization now, and then un-do its
   // global _fmode setting so that using libuv does not change the
   // default file text/binary mode.  See libuv issue 840.
-  uv_loop_close(uv_default_loop());
+  if (uv_loop_t* loop = uv_default_loop()) {
+    uv_loop_close(loop);
+  }
 #  ifdef _MSC_VER
   _set_fmode(_O_TEXT);
 #  else
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 75280fb8a5..e0c17f8d54 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -717,6 +717,8 @@ int main(int ac, char const* const* av)
 #ifndef CMAKE_BOOTSTRAP
   cmDynamicLoader::FlushCache();
 #endif
-  uv_loop_close(uv_default_loop());
+  if (uv_loop_t* loop = uv_default_loop()) {
+    uv_loop_close(loop);
+  }
   return ret;
 }
-- 
GitLab