diff options
author | root <root@rshg054.dnsready.net> | 2013-02-10 01:12:52 -0800 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-02-10 01:12:52 -0800 |
commit | 1bb2648cde916ac27d3dd75d7b64a4ddc89787b7 (patch) | |
tree | 016bfa1969323404c37dbef29cfc7242a5a8e9f3 /extra/rssh/rsync.patch | |
parent | e9c244cac8e5dc1c59c7e8b7bc885fef04224b70 (diff) |
Sun Feb 10 01:12:35 PST 2013
Diffstat (limited to 'extra/rssh/rsync.patch')
-rw-r--r-- | extra/rssh/rsync.patch | 54 |
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; - } - |