1. 25 Oct, 1999 1 commit
  2. 19 Oct, 1999 1 commit
  3. 06 Sep, 1999 1 commit
  4. 30 Aug, 1999 1 commit
  5. 09 Jul, 1999 2 commits
    • David Dykstra's avatar
      Add a couple clarifying points to the sanitize_path() comments. · 79452d46
      David Dykstra authored
      One is a note that a leading "/" in a symlink target will not behave
      exactly as if a chroot had occurred, but I decided it wasn't worth the
      making it the same.
      
      The other is note about an extra harmless trailing "." that is added under
      some rare circumstances.
      79452d46
    • David Dykstra's avatar
      Fix significant security holes with "use chroot = no" in an rsync daemon: · cb13abfe
      David Dykstra authored
          1. The file paths being sent and received were not "sanitized" to
      	ensure that there weren't any ".." components that would escape the
      	top level directory.  This can't happen with the standard rsync
      	client, but it could be exploited on both read and write if someone
      	modified an rsync client.  This fix sanitizes all incoming and
      	outgoing paths when "use chroot = no".
      
          2. If a module is also "read only = no", clients could have created
      	symbolic links with ".." components that would allow writing
      	outside of the module.  This could happen with the standard rsync
      	client.  This fix sanitizes all incoming symbolic link targets
      	when "use chroot = no".
      
      Previously, only top-level paths (anything passed in command line arguments)
      were sanitized.  Sorry, I didn't think about the individual file paths
      before now.
      cb13abfe
  6. 27 Jun, 1999 1 commit
  7. 26 Jun, 1999 1 commit
  8. 13 Apr, 1999 1 commit
  9. 06 Apr, 1999 9 commits
  10. 02 Apr, 1999 1 commit
  11. 24 Mar, 1999 2 commits
    • David Dykstra's avatar
      Backed out the change to create missing parent directories when using · 752eaba4
      David Dykstra authored
      --compare-dest.  It was due to an incomplete analysis of the problem,
      sorry.  I left a comment in its place indicating that normally the
      parent directories should already have been created.
      
      It turned out to actually be a bug in nsbd in which it was not always
      including all the parent directories in the include list like it was
      supposed to.  The files themselves were still being sent but that was only
      because my exclude_the_rest optimization was kicking in; if it weren't,
      excluding the parent directories would have had the side effect of
      excluding the files too.  So it really had nothing to do with the
      --compare-dest option after all, just with the requirement that if you use
      --exclude '*' you need to explicitly include all parent directories of
      files you include.
      752eaba4
    • David Dykstra's avatar
      The "pid file" was getting created mode 666, not applying the umask · ad517ce5
      David Dykstra authored
      because at that point in the program the umask is set to 0.  Now creating
      the file with mode (666 & ~orig_umask).
      ad517ce5
  12. 23 Mar, 1999 1 commit
    • David Dykstra's avatar
      Fix bug with --compare-dest option where missing parent directories in the · 1f841344
      David Dykstra authored
      target destination were not getting created.  There was a case in
      receiver.c to do that but it was only getting invoked when the -R option is
      specified, although I don't know why it was limited to that.
      
      It's too bad I didn't get a chance to more fully test the use of
      --compare-dest by my nsbd program before releasing rsync 2.3.0.  I'll
      probably need to put a workaround in nsbd too until the next release
      of rsync.
      1f841344
  13. 15 Mar, 1999 3 commits
  14. 12 Mar, 1999 4 commits
  15. 11 Mar, 1999 1 commit
  16. 09 Mar, 1999 3 commits
  17. 05 Mar, 1999 1 commit
    • David Dykstra's avatar
      Update config.guess from a new official GNU version. · 529e6086
      David Dykstra authored
      I believe this is the latest, which comes with automake 1.4 (somebody
      else is in charge of installing the GNU stuff on my system so I'm not
      100% sure it's the absolute latest, but it was updated just a couple
      weeks ago).
      529e6086
  18. 04 Mar, 1999 1 commit
    • David Dykstra's avatar
      The change a couple days ago to create files initially without group and · 972a3619
      David Dykstra authored
      other access resulted in group and other access being left off when the
      '-p' option was not used.  This fixes it by reintroducing the ACCESSPERMS
      mask and setting permissions to (file->mode & ACCESSPERMS) if preserve_perms
      is off.  I decided to change the mask INITPERMMASK to INITACCESSPERMS at
      the same time.  When preserve_perms is off, rsync is restored to the
      previous behavior of having the permissions of the original file with the
      umask and setuid/setgid bits shut off.
      
      Also, I decided that a check for "(updated && (file->mode & ~ACCESSPERMS))"
      is no longer needed since as far as I can tell that would have only affected
      permissions when not running as root and when a chgrp was done to a group
      the user was not a member of, using system V chgrp semantics.  This is no
      longer allowed.
      972a3619
  19. 02 Mar, 1999 2 commits
  20. 01 Mar, 1999 3 commits
    • David Dykstra's avatar
      Change the mask used when creating temporary files from 777 to 700, to prevent · 5afd8aed
      David Dykstra authored
      an obscure race-condition security hole where a file may for a short time
      have the wrong group.  Could have used 707 instead but that's just too weird
      of a permission.  The define name used to be ACCESSPERMS but that is defined
      as 777 on Linux, so changed the name to INITPERMMASK.
      5afd8aed
    • David Dykstra's avatar
      When comparing -1 to a group id, cast -1 with gid_t because on some systems · 86692050
      David Dykstra authored
      such as sunos4 gid_t is an unsigned short.  This prevented the just-added
      non-mapped group test from working on sunos4.
      86692050
    • David Dykstra's avatar
      Prevent the -g option from preserving groups that a non-root receiver · 460f6b99
      David Dykstra authored
      does not belong to, in these two ways:
          1. If a group mapping doesn't exist for a group name, do not preserve
      	it for a non-root receiver.  This is especially evident with the
      	sender is a daemon using chroot because then no mappings are
      	available.
          2. Before setting the group on a file make sure that it is in the list
      	of groups returned by getgroups().  The same thing is done by chgrp
      	on systems that support bsd-style chown/chgrp, and this enforces
      	that it happens the same way on all systems.  Overhead is very
      	little, especially since most systems don't allow more then 16
      	groups per user.
      460f6b99