-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
From 5a43d0f724c56f8836f3f92411e0de1b5f82db32 Mon Sep 17 00:00:00 2001 | ||
From: Sam James <[email protected]> | ||
Date: Sat, 24 Jul 2021 22:02:45 +0100 | ||
Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix | ||
glibc-2.34+) | ||
|
||
closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since | ||
it's available in glibc 2.34+, we want to detect it and only define our | ||
fallback if the libc doesn't provide it. | ||
|
||
Bug: https://bugs.gentoo.org/803923 | ||
Signed-off-by: Sam James <[email protected]> | ||
--- | ||
configure.ac | 1 + | ||
util/ulockmgr_server.c | 6 ++++++ | ||
2 files changed, 7 insertions(+) | ||
|
||
diff --git a/configure.ac b/configure.ac | ||
index 9946a0efa..a2d481aa9 100644 | ||
--- a/configure.ac | ||
+++ b/configure.ac | ||
@@ -55,6 +55,7 @@ fi | ||
|
||
AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat]) | ||
AC_CHECK_FUNCS([posix_fallocate]) | ||
+AC_CHECK_FUNCS([closefrom]) | ||
AC_CHECK_MEMBERS([struct stat.st_atim]) | ||
AC_CHECK_MEMBERS([struct stat.st_atimespec]) | ||
|
||
diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c | ||
index 273c7d923..a04dac5c6 100644 | ||
--- a/util/ulockmgr_server.c | ||
+++ b/util/ulockmgr_server.c | ||
@@ -22,6 +22,10 @@ | ||
#include <sys/socket.h> | ||
#include <sys/wait.h> | ||
|
||
+#ifdef HAVE_CONFIG_H | ||
+ #include "config.h" | ||
+#endif | ||
+ | ||
struct message { | ||
unsigned intr : 1; | ||
unsigned nofd : 1; | ||
@@ -124,6 +128,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp, | ||
return res; | ||
} | ||
|
||
+#if !defined(HAVE_CLOSEFROM) | ||
static int closefrom(int minfd) | ||
{ | ||
DIR *dir = opendir("/proc/self/fd"); | ||
@@ -141,6 +146,7 @@ static int closefrom(int minfd) | ||
} | ||
return 0; | ||
} | ||
+#endif | ||
|
||
static void send_reply(int cfd, struct message *msg) | ||
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters