diff options
| author | Wayne Davison <wayned@samba.org> | 2006-03-02 03:53:42 +0000 |
|---|---|---|
| committer | Wayne Davison <wayned@samba.org> | 2006-03-02 03:53:42 +0000 |
| commit | 44c26bf2a18a84c0f492c92c934060fe385096f7 (patch) | |
| tree | 56203c642e3d676a74f605eec0e20468e8b0a418 /main.c | |
| parent | cc8c5057fecefca576daa1f4e891b444f25686fd (diff) | |
| download | android_external_rsync-44c26bf2a18a84c0f492c92c934060fe385096f7.tar.gz android_external_rsync-44c26bf2a18a84c0f492c92c934060fe385096f7.tar.bz2 android_external_rsync-44c26bf2a18a84c0f492c92c934060fe385096f7.zip | |
Don't allow overwriting a non-directory with a directory (just
like cp).
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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)); |
