The branch, master has been updated
       via  9e7b8ab Don't allow --daemon or --server alias via popt. Fixes bug 
12576.
      from  87bc224 Add a way to specify xattr name filtering.

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9e7b8ab7cf66ecd152002926a7da61d8ad862522
Author: Wayne Davison <way...@samba.org>
Date:   Mon Feb 20 11:04:06 2017 -0800

    Don't allow --daemon or --server alias via popt.
    Fixes bug 12576.

-----------------------------------------------------------------------

Summary of changes:
 options.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/options.c b/options.c
index 6ba13b7..64ec8b8 100644
--- a/options.c
+++ b/options.c
@@ -1281,6 +1281,22 @@ static void create_refuse_error(int which)
        }
 }
 
+/* This is used to make sure that --daemon & --server cannot be aliased to
+ * something else. These options have always disabled popt aliases for the
+ * parsing of a daemon or server command-line, but we have to make sure that
+ * these options cannot vanish so that the alias disabling can take effect. */
+static void popt_unalias(poptContext con, const char *opt)
+{
+       struct poptAlias unalias;
+
+       unalias.longName = opt + 2; /* point past the leading "--" */
+       unalias.shortName = '\0';
+       unalias.argc = 1;
+       unalias.argv = new_array(const char*, 1);
+       unalias.argv[0] = strdup(opt);
+
+       poptAddAlias(con, unalias, 0);
+}
 
 /**
  * Process command line arguments.  Called on both local and remote.
@@ -1320,8 +1336,11 @@ int parse_arguments(int *argc_p, const char ***argv_p)
        if (pc)
                poptFreeContext(pc);
        pc = poptGetContext(RSYNC_NAME, argc, argv, long_options, 0);
-       if (!am_server)
+       if (!am_server) {
                poptReadDefaultConfig(pc, 0);
+               popt_unalias(pc, "--daemon");
+               popt_unalias(pc, "--server");
+       }
 
        while ((opt = poptGetNextOpt(pc)) != -1) {
                /* most options are handled automatically by popt;


-- 
The rsync repository.

_______________________________________________
rsync-cvs mailing list
rsync-cvs@lists.samba.org
https://lists.samba.org/mailman/listinfo/rsync-cvs

Reply via email to