summaryrefslogtreecommitdiff
path: root/openssh-7.2p2-s390-closefrom.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-07-03 02:42:38 +0000
committerCoprDistGit <infra@openeuler.org>2024-07-03 02:42:38 +0000
commit3c362eae690284f325824e38431881825e32ffdd (patch)
treed2d0e11b92bf88d35c270559d268845d391a4703 /openssh-7.2p2-s390-closefrom.patch
parent62f0a34c39a6846b6a86f2bbc7fb8c319bd46d94 (diff)
automatic import of openssh
Diffstat (limited to 'openssh-7.2p2-s390-closefrom.patch')
-rw-r--r--openssh-7.2p2-s390-closefrom.patch52
1 files changed, 0 insertions, 52 deletions
diff --git a/openssh-7.2p2-s390-closefrom.patch b/openssh-7.2p2-s390-closefrom.patch
deleted file mode 100644
index 363538c..0000000
--- a/openssh-7.2p2-s390-closefrom.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Zseries only: Leave the hardware filedescriptors open.
-
-All filedescriptors above 2 are getting closed when a new
-sshd process to handle a new client connection is
-spawned. As the process also chroot into an empty filesystem
-without any device nodes, there is no chance to reopen the
-files. This patch filters out the reqired fds in the
-closefrom function so these are skipped in the close loop.
-
-Author: Harald Freudenberger <freude@de.ibm.com>
-
----
- openbsd-compat/bsd-closefrom.c | 26 ++++++++++++++++++++++++++
- 1 file changed, 26 insertions(+)
-
---- a/openbsd-compat/bsd-closefrom.c
-+++ b/openbsd-compat/bsd-closefrom.c
-@@ -82,7 +82,33 @@ closefrom(int lowfd)
- fd = strtol(dent->d_name, &endp, 10);
- if (dent->d_name != endp && *endp == '\0' &&
- fd >= 0 && fd < INT_MAX && fd >= lowfd && fd != dirfd(dirp))
-+#ifdef __s390__
-+ {
-+ /*
-+ * the filedescriptors used to communicate with
-+ * the device drivers to provide hardware support
-+ * should survive. HF <freude@de.ibm.com>
-+ */
-+ char fpath[PATH_MAX], lpath[PATH_MAX];
-+ len = snprintf(fpath, sizeof(fpath), "%s/%s",
-+ fdpath, dent->d_name);
-+ if (len > 0 && (size_t)len <= sizeof(fpath)) {
-+ len = readlink(fpath, lpath, sizeof(lpath));
-+ if (len > 0) {
-+ lpath[len] = 0;
-+ if (strstr(lpath, "dev/z90crypt")
-+ || strstr(lpath, "dev/zcrypt")
-+ || strstr(lpath, "dev/prandom")
-+ || strstr(lpath, "dev/shm/icastats"))
-+ fd = -1;
-+ }
-+ }
-+ if (fd >= 0)
-+ (void) close((int) fd);
-+ }
-+#else
- (void) close((int) fd);
-+#endif
- }
- (void) closedir(dirp);
- return;
-