summaryrefslogtreecommitdiff
path: root/extra/rssh/rsync.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/rssh/rsync.patch')
-rw-r--r--extra/rssh/rsync.patch54
1 files changed, 0 insertions, 54 deletions
diff --git a/extra/rssh/rsync.patch b/extra/rssh/rsync.patch
deleted file mode 100644
index 7d0a51195..000000000
--- a/extra/rssh/rsync.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff -Naur old/util.c new/util.c
---- old/util.c 2012-08-01 13:48:47.803620731 +1000
-+++ new/util.c 2012-08-01 13:55:13.622614598 +1000
-@@ -56,6 +56,7 @@
- #ifdef HAVE_LIBGEN_H
- #include <libgen.h>
- #endif /* HAVE_LIBGEN_H */
-+#include <regex.h>
-
- /* LOCAL INCLUDES */
- #include "pathnames.h"
-@@ -192,6 +193,33 @@
-
-
- /*
-+ * check_rsync_e() - take the command line passed to rssh and look for a -e
-+ * option. If one is found, make sure --server is provided
-+ * and the option contains only the protocol information.
-+ * Returns 1 if the command line is safe; 0 otherwise.
-+ */
-+static int check_rsync_e( char *cl )
-+{
-+ int status;
-+ regex_t re;
-+
-+ /*
-+ * This is more complicated than it looks because we don't want to
-+ * trigger on the e in --server, but we do want to catch the common
-+ * case of -ltpre.iL (which contains -e.).
-+ */
-+ static const char pattern[] = "[ \t\v\f]-([^-][^ ]*)?e[^.0-9]";
-+
-+ if ( strstr(cl, "--server") == NULL ) return 0;
-+ if ( regcomp(&re, pattern, REG_EXTENDED | REG_NOSUB) != 0 ){
-+ return 0;
-+ }
-+ status = regexec(&re, cl, 0, NULL, 0);
-+ regfree(&re);
-+ return (status == 0) ? 0 : 1;
-+}
-+
-+/*
- * check_command_line() - take the command line passed to rssh, and verify
- * that the specified command is one the user is
- * allowed to run and validate the arguments. Return the
-@@ -211,7 +239,7 @@
- }
-
- if ( check_command(*cl, opts, PATH_CVS, RSSH_ALLOW_CVS) ){
-- if ( opt_filter(cl, 'e') ) return NULL;
-+ if ( opt_filter(cl, 'e') && !check_rsync_e(cl) ) return NULL;
- return PATH_CVS;
- }
-