summaryrefslogtreecommitdiff
path: root/net/rdist6/files/patch-ae
diff options
context:
space:
mode:
Diffstat (limited to 'net/rdist6/files/patch-ae')
-rw-r--r--net/rdist6/files/patch-ae60
1 files changed, 60 insertions, 0 deletions
diff --git a/net/rdist6/files/patch-ae b/net/rdist6/files/patch-ae
new file mode 100644
index 000000000000..72b1fd99d753
--- /dev/null
+++ b/net/rdist6/files/patch-ae
@@ -0,0 +1,60 @@
+Index: src/docmd.c
+===================================================================
+RCS file: /src/rdist/src/docmd.c,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -c -r1.1.1.1 -r1.2
+*** docmd.c 1995/07/21 09:53:30 1.1.1.1
+--- docmd.c 1995/07/21 10:07:14 1.2
+***************
+*** 251,259 ****
+ char *cmd;
+ {
+ int desc;
+- #if defined(DIRECT_RCMD)
+ static int port = -1;
+- #endif /* DIRECT_RCMD */
+
+ debugmsg(DM_MISC, "local user = %s remote user = %s\n", luser, ruser);
+ debugmsg(DM_MISC, "Remote command = '%s'\n", cmd);
+--- 251,257 ----
+***************
+*** 280,290 ****
+ if (becomeuser() != 0)
+ exit(1);
+ #else /* !DIRECT_RCMD */
+! debugmsg(DM_MISC, "Remote shell command = '%s'\n", path_remsh);
+! (void) signal(SIGPIPE, SIG_IGN);
+! desc = rshrcmd(&rhost, -1, luser, ruser, cmd, 0);
+! if (desc > 0)
+ (void) signal(SIGPIPE, sighandler);
+ #endif /* DIRECT_RCMD */
+
+ (void) alarm(0);
+--- 278,303 ----
+ if (becomeuser() != 0)
+ exit(1);
+ #else /* !DIRECT_RCMD */
+! if (geteuid() == 0) {
+! debugmsg(DM_MISC, "I am root, therefore direct rcmd\n");
+ (void) signal(SIGPIPE, sighandler);
++
++ if (port < 0) {
++ struct servent *sp;
++
++ if ((sp = getservbyname("shell", "tcp")) == NULL)
++ fatalerr("shell/tcp: unknown service");
++ port = sp->s_port;
++ }
++
++ desc = rcmd(&rhost, port, luser, ruser, cmd, 0);
++ } else {
++ debugmsg(DM_MISC, "Remote shell command = '%s'\n", path_remsh);
++ (void) signal(SIGPIPE, SIG_IGN);
++ desc = rshrcmd(&rhost, -1, luser, ruser, cmd, 0);
++ if (desc > 0)
++ (void) signal(SIGPIPE, sighandler);
++ }
+ #endif /* DIRECT_RCMD */
+
+ (void) alarm(0);