summaryrefslogtreecommitdiff
path: root/package/portmap/portmap-4.0-rpc_user.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/portmap/portmap-4.0-rpc_user.patch')
-rw-r--r--package/portmap/portmap-4.0-rpc_user.patch59
1 files changed, 0 insertions, 59 deletions
diff --git a/package/portmap/portmap-4.0-rpc_user.patch b/package/portmap/portmap-4.0-rpc_user.patch
deleted file mode 100644
index 6ef0736d0..000000000
--- a/package/portmap/portmap-4.0-rpc_user.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff -urN portmap_4/daemon.c portmap_4.new/daemon.c
---- portmap_4/daemon.c Thu Aug 3 18:07:22 2000
-+++ portmap_4.new/daemon.c Fri Aug 4 08:45:25 2000
-@@ -35,6 +35,7 @@
- static char sccsid[] = "@(#)daemon.c 5.3 (Berkeley) 12/28/90";
- #endif /* LIBC_SCCS and not lint */
-
-+#include <stdlib.h>
- #include <sys/types.h>
- #include <fcntl.h>
- #include <unistd.h>
-diff -urN portmap_4/pmap_check.c portmap_4.new/pmap_check.c
---- portmap_4/pmap_check.c Thu Aug 3 18:07:22 2000
-+++ portmap_4.new/pmap_check.c Thu Aug 3 18:29:51 2000
-@@ -40,6 +40,8 @@
- #include <rpc/pmap_prot.h>
- #include <syslog.h>
- #include <netdb.h>
-+#include <pwd.h>
-+#include <sys/types.h>
- #include <sys/signal.h>
- #ifdef SYSV40
- #include <netinet/in.h>
-@@ -149,11 +151,32 @@
- /*
- * Give up root privileges so that we can never allocate a privileged
- * port when forwarding an rpc request.
-+ *
-+ * Fix 8/3/00 Philipp Knirsch: First lookup our rpc user. If we find it,
-+ * switch to that uid, otherwise simply resue the old bin user and print
-+ * out a warning in syslog.
- */
-- if (setuid(1) == -1) {
-- syslog(LOG_ERR, "setuid(1) failed: %m");
-- exit(1);
-+
-+ struct passwd *pwent;
-+
-+ pwent = getpwnam("rpc");
-+ if (pwent == NULL) {
-+ syslog(LOG_WARNING, "user rpc not found, reverting to user bin");
-+ if (setuid(1) == -1) {
-+ syslog(LOG_ERR, "setuid(1) failed: %m");
-+ exit(1);
-+ }
- }
-+ else {
-+ if (setuid(pwent->pw_uid) == -1) {
-+ syslog(LOG_WARNING, "setuid() to rpc user failed: %m");
-+ if (setuid(1) == -1) {
-+ syslog(LOG_ERR, "setuid(1) failed: %m");
-+ exit(1);
-+ }
-+ }
-+ }
-+
- (void) signal(SIGINT, toggle_verboselog);
- }
-