X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/9486289ce452ab82ca8b3f16fae8c2ef5247a923..1a016bfdec2823c6d4e78a3dcc253cdfc30a10af:/flist.c diff --git a/flist.c b/flist.c index 494b1088..cf401519 100644 --- a/flist.c +++ b/flist.c @@ -218,7 +218,7 @@ void send_file_entry(struct file_struct *file,int f,unsigned base_flags) last_gid = file->gid; last_time = file->modtime; - strncpy(lastname,fname,MAXPATHLEN-1); + strlcpy(lastname,fname,MAXPATHLEN-1); lastname[MAXPATHLEN-1] = 0; } @@ -253,11 +253,11 @@ static void receive_file_entry(struct file_struct **fptr, if (l2 >= MAXPATHLEN-l1) overflow("receive_file_entry"); - strncpy(thisname,lastname,l1); + strlcpy(thisname,lastname,l1); read_sbuf(f,&thisname[l1],l2); thisname[l1+l2] = 0; - strncpy(lastname,thisname,MAXPATHLEN-1); + strlcpy(lastname,thisname,MAXPATHLEN-1); lastname[MAXPATHLEN-1] = 0; clean_fname(thisname); @@ -351,7 +351,7 @@ static struct file_struct *make_file(char *fname) char *p; char cleaned_name[MAXPATHLEN]; - strncpy(cleaned_name, fname, MAXPATHLEN-1); + strlcpy(cleaned_name, fname, MAXPATHLEN-1); cleaned_name[MAXPATHLEN-1] = 0; clean_fname(cleaned_name); fname = cleaned_name; @@ -512,8 +512,7 @@ static void send_directory(int f,struct file_list *flist,char *dir) return; } - strncpy(fname,dir,MAXPATHLEN-1); - fname[MAXPATHLEN-1]=0; + strlcpy(fname,dir,MAXPATHLEN-1); l = strlen(fname); if (fname[l-1] != '/') { if (l == MAXPATHLEN-1) { @@ -522,7 +521,7 @@ static void send_directory(int f,struct file_list *flist,char *dir) closedir(d); return; } - strcat(fname,"/"); + strlcat(fname,"/", MAXPATHLEN-1); l++; } p = fname + strlen(fname); @@ -542,7 +541,7 @@ static void send_directory(int f,struct file_list *flist,char *dir) if (strcmp(dname,".")==0 || strcmp(dname,"..")==0) continue; - strncpy(p,dname,MAXPATHLEN-(l+1)); + strlcpy(p,dname,MAXPATHLEN-(l+1)); send_file_name(f,flist,fname,recurse,FLAG_DELETE); } @@ -574,16 +573,19 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) flist->malloced); if (!flist->files) out_of_memory("send_file_list"); + if (f != -1) { + io_start_buffering(f); + } + for (i=0;i 2) rprintf(FINFO,"send_file_list done\n"); @@ -872,9 +878,9 @@ char *f_name(struct file_struct *f) n = (n+1)%10; if (f->dirname) { - sprintf(p, "%s/%s", f->dirname, f->basename); + slprintf(p, MAXPATHLEN-1, "%s/%s", f->dirname, f->basename); } else { - strcpy(p, f->basename); + strlcpy(p, f->basename, MAXPATHLEN-1); } return p;