diff options
Diffstat (limited to 'poky/meta/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch')
-rw-r--r-- | poky/meta/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/poky/meta/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch b/poky/meta/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch deleted file mode 100644 index 389b41b42c..0000000000 --- a/poky/meta/recipes-devtools/rpm/files/0003-rpmSetCloseOnExec-use-getrlimit.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 307e28b4cb08b05bc044482058eeebc9f59bb9a9 Mon Sep 17 00:00:00 2001 -From: Kir Kolyshkin <kolyshkin@gmail.com> -Date: Tue, 29 May 2018 18:09:27 -0700 -Subject: [PATCH 3/3] rpmSetCloseOnExec: use getrlimit() - -In case /proc is not available to get the actual list of opened fds, -we fall back to iterating through the list of all possible fds. - -It is possible that during the course of the program execution the limit -on number of open file descriptors might be lowered, so using the -current limit, as returned by sysconf(_SC_OPEN_MAX), might omit some -fds. Therefore, it is better to use rlim_max from the structure -filled in by gertlimit(RLIMIT_NOFILE) to make sure we're checking -all fds. - -This slows down the function, but only in the case /proc is not -available, which should be rare in practice. - -Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com> -Upstream-Status: Accepted [https://github.com/rpm-software-management/rpm/pull/444] -Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> ---- - rpmio/rpmio.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/rpmio/rpmio.c b/rpmio/rpmio.c -index 55351c221..e051c9863 100644 ---- a/rpmio/rpmio.c -+++ b/rpmio/rpmio.c -@@ -10,6 +10,7 @@ - #include <sys/personality.h> - #endif - #include <sys/utsname.h> -+#include <sys/resource.h> - - #include <rpm/rpmlog.h> - #include <rpm/rpmmacro.h> -@@ -1778,7 +1779,14 @@ void rpmSetCloseOnExec(void) - DIR *dir = opendir("/proc/self/fd"); - if (dir == NULL) { /* /proc not available */ - /* iterate over all possible fds, might be slow */ -- int open_max = sysconf(_SC_OPEN_MAX); -+ struct rlimit rl; -+ int open_max; -+ -+ if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && rl.rlim_max != RLIM_INFINITY) -+ open_max = rl.rlim_max; -+ else -+ open_max = sysconf(_SC_OPEN_MAX); -+ - if (open_max == -1) - open_max = 1024; - |