From 44c26bf2a18a84c0f492c92c934060fe385096f7 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Thu, 2 Mar 2006 03:53:42 +0000 Subject: [PATCH] Don't allow overwriting a non-directory with a directory (just like cp). --- main.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/main.c b/main.c index 4b51d31e..3acdfd31 100644 --- a/main.c +++ b/main.c @@ -480,6 +480,13 @@ static char *get_local_name(struct file_list *flist, char *dest_path) " copying more than 1 file\n"); exit_cleanup(RERR_FILESELECT); } + /* Caution: flist->count could be 0! */ + if (flist->count == 1 && S_ISDIR(flist->files[0]->mode)) { + rprintf(FERROR, + "ERROR: cannot overwrite non-directory" + " with a directory\n"); + exit_cleanup(RERR_FILESELECT); + } } else if (errno != ENOENT) { rsyserr(FERROR, errno, "cannot stat destination %s", full_fname(dest_path)); -- 2.34.1