From c56595d7497121629c5a4a94786280bfa6074bc4 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 15 Jan 2005 21:14:27 +0000 Subject: [PATCH] Make sure that the generator sent us a valid index into basis_dir[]. --- receiver.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/receiver.c b/receiver.c index 8c91ea6f..3e72768b 100644 --- a/receiver.c +++ b/receiver.c @@ -40,6 +40,7 @@ extern int io_error; extern char *tmpdir; extern char *partial_dir; extern char *basis_dir[]; +extern int basis_dir_cnt; extern int make_backups; extern int do_progress; extern char *backup_dir; @@ -453,8 +454,13 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, case FNAMECMP_BACKUP: fnamecmp = get_backup_name(fname); break; - case FNAMECMP_BASIS_DIR: default: + if (j >= basis_dir_cnt) { + rprintf(FERROR, + "invalid basis_dir index: %d.\n", + j); + exit_cleanup(RERR_PROTOCOL); + } pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, basis_dir[j], fname); fnamecmp = fnamecmpbuf; -- 2.34.1