|
From 1e451ddc15af1a4e19318c8b1ced46c5c41610d3 Mon Sep 17 00:00:00 2001
|
|
From: Khem Raj <raj.khem@gmail.com>
|
|
Date: Wed, 14 Jul 2021 18:08:30 -0700
|
|
Subject: [PATCH] correct signature of closefrom() API
|
|
|
|
glibc 2.34 introduced this function and finds this error which has been
|
|
all along.
|
|
|
|
Upstream-Status: Pending
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
---
|
|
src/util/sys_compat.c | 6 +++---
|
|
src/util/sys_defs.h | 12 ++++++------
|
|
2 files changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
--- a/src/util/sys_compat.c
|
|
+++ b/src/util/sys_compat.c
|
|
@@ -286,7 +286,7 @@ int dup2_pass_on_exec(int oldd, int
|
|
|
|
/* closefrom() - closes all file descriptors from the given one up */
|
|
|
|
-int closefrom(int lowfd)
|
|
+void closefrom(int lowfd)
|
|
{
|
|
int fd_limit = open_limit(0);
|
|
int fd;
|
|
@@ -298,14 +298,14 @@ int closefrom(int lowfd)
|
|
*/
|
|
if (lowfd < 0) {
|
|
errno = EBADF;
|
|
- return (-1);
|
|
+ return;
|
|
}
|
|
if (fd_limit > 500)
|
|
fd_limit = 500;
|
|
for (fd = lowfd; fd < fd_limit; fd++)
|
|
(void) close(fd);
|
|
|
|
- return (0);
|
|
+ return;
|
|
}
|
|
|
|
#endif
|
|
--- a/src/util/sys_defs.h
|
|
+++ b/src/util/sys_defs.h
|
|
@@ -1509,7 +1509,7 @@ extern int setsid(void);
|
|
#endif
|
|
|
|
#ifndef HAS_CLOSEFROM
|
|
-extern int closefrom(int);
|
|
+extern void closefrom(int);
|
|
|
|
#endif
|
|
|
|
@@ -1563,7 +1563,7 @@ typedef int pid_t;
|
|
|
|
/*
|
|
* Clang-style attribute tests.
|
|
- *
|
|
+ *
|
|
* XXX Without the unconditional test below, gcc 4.6 will barf on ``elif
|
|
* defined(__clang__) && __has_attribute(__whatever__)'' with error message
|
|
* ``missing binary operator before token "("''.
|
|
@@ -1577,7 +1577,7 @@ typedef int pid_t;
|
|
* warn for missing initializations and other trouble. However, OPENSTEP4
|
|
* gcc 2.7.x cannot handle this so we define this only if NORETURN isn't
|
|
* already defined above.
|
|
- *
|
|
+ *
|
|
* Data point: gcc 2.7.2 has __attribute__ (Wietse Venema) but gcc 2.6.3 does
|
|
* not (Clive Jones). So we'll set the threshold at 2.7.
|
|
*/
|
|
@@ -1653,12 +1653,12 @@ typedef int pid_t;
|
|
* write to output parameters (for example, stat- or scanf-like functions)
|
|
* or from functions that have other useful side effects (for example,
|
|
* fseek- or rename-like functions).
|
|
- *
|
|
+ *
|
|
* DO NOT use this for functions that write to a stream; it is entirely
|
|
* legitimate to detect write errors with fflush() or fclose() only. On the
|
|
* other hand most (but not all) functions that read from a stream must
|
|
* never ignore result values.
|
|
- *
|
|
+ *
|
|
* XXX Prepending "(void)" won't shut up GCC. Clang behaves as expected.
|
|
*/
|
|
#if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ > 3)
|
|
@@ -1747,7 +1747,7 @@ typedef const char *CONST_CHAR_STAR;
|
|
* Safety. On some systems, ctype.h misbehaves with non-ASCII or negative
|
|
* characters. More importantly, Postfix uses the ISXXX() macros to ensure
|
|
* protocol compliance, so we have to rule out non-ASCII characters.
|
|
- *
|
|
+ *
|
|
* XXX The (unsigned char) casts in isalnum() etc arguments are unnecessary
|
|
* because the ISASCII() guard already ensures that the values are
|
|
* non-negative; the casts are done anyway to shut up chatty compilers.
|