|
|
@ -0,0 +1,97 @@ |
|
|
|
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. |