X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d6e6ecbdbf0452ec95afc98c2700076e39b4692f..e45e0093094fd7e7dd44531bff74188b67869cc4:/flist.c diff --git a/flist.c b/flist.c index 53038739..4c2e984c 100644 --- a/flist.c +++ b/flist.c @@ -69,7 +69,7 @@ static int match_file_name(char *fname,STRUCT_STAT *st) { if (check_exclude(fname,local_exclude_list)) { if (verbose > 2) - fprintf(FINFO,"excluding file %s\n",fname); + rprintf(FINFO,"excluding file %s\n",fname); return 0; } return 1; @@ -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; @@ -360,13 +360,13 @@ static struct file_struct *make_file(char *fname) if (link_stat(fname,&st) != 0) { io_error = 1; - fprintf(FERROR,"%s: %s\n", + rprintf(FERROR,"%s: %s\n", fname,strerror(errno)); return NULL; } if (S_ISDIR(st.st_mode) && !recurse) { - fprintf(FINFO,"skipping directory %s\n",fname); + rprintf(FINFO,"skipping directory %s\n",fname); return NULL; } @@ -379,7 +379,7 @@ static struct file_struct *make_file(char *fname) return NULL; if (verbose > 2) - fprintf(FINFO,"make_file(%s)\n",fname); + rprintf(FINFO,"make_file(%s)\n",fname); file = (struct file_struct *)malloc(sizeof(*file)); if (!file) out_of_memory("make_file"); @@ -418,7 +418,7 @@ static struct file_struct *make_file(char *fname) char lnk[MAXPATHLEN]; if ((l=readlink(fname,lnk,MAXPATHLEN-1)) == -1) { io_error=1; - fprintf(FERROR,"readlink %s : %s\n", + rprintf(FERROR,"readlink %s : %s\n", fname,strerror(errno)); return NULL; } @@ -507,18 +507,17 @@ static void send_directory(int f,struct file_list *flist,char *dir) d = opendir(dir); if (!d) { io_error = 1; - fprintf(FERROR,"%s: %s\n", + rprintf(FERROR,"%s: %s\n", dir,strerror(errno)); 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) { io_error = 1; - fprintf(FERROR,"skipping long-named directory %s\n",fname); + rprintf(FERROR,"skipping long-named directory %s\n",fname); closedir(d); return; } @@ -533,7 +532,7 @@ static void send_directory(int f,struct file_list *flist,char *dir) local_exclude_list = make_exclude_list(fname,NULL,0); } else { io_error = 1; - fprintf(FINFO,"cannot cvs-exclude in long-named directory %s\n",fname); + rprintf(FINFO,"cannot cvs-exclude in long-named directory %s\n",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); } @@ -561,8 +560,8 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) struct file_list *flist; if (verbose && recurse && !am_server && f != -1) { - fprintf(FINFO,"building file list ... "); - fflush(FINFO); + rprintf(FINFO,"building file list ... "); + rflush(FINFO); } flist = (struct file_list *)malloc(sizeof(flist[0])); @@ -578,8 +577,7 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) char fname2[MAXPATHLEN]; char *fname = fname2; - strncpy(fname,argv[i],MAXPATHLEN-1); - fname[MAXPATHLEN-1] = 0; + strlcpy(fname,argv[i],MAXPATHLEN-1); l = strlen(fname); if (l != 1 && fname[l-1] == '/') { @@ -588,12 +586,12 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) if (link_stat(fname,&st) != 0) { io_error=1; - fprintf(FERROR,"%s : %s\n",fname,strerror(errno)); + rprintf(FERROR,"%s : %s\n",fname,strerror(errno)); continue; } if (S_ISDIR(st.st_mode) && !recurse) { - fprintf(FINFO,"skipping directory %s\n",fname); + rprintf(FINFO,"skipping directory %s\n",fname); continue; } @@ -631,12 +629,12 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) if (dir && *dir) { if (getcwd(dbuf,MAXPATHLEN-1) == NULL) { - fprintf(FERROR,"getwd : %s\n",strerror(errno)); + rprintf(FERROR,"getwd : %s\n",strerror(errno)); exit_cleanup(1); } if (chdir(dir) != 0) { io_error=1; - fprintf(FERROR,"chdir %s : %s\n", + rprintf(FERROR,"chdir %s : %s\n", dir,strerror(errno)); continue; } @@ -646,7 +644,7 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) send_file_name(f,flist,fname,recurse,FLAG_DELETE); flist_dir = NULL; if (chdir(dbuf) != 0) { - fprintf(FERROR,"chdir %s : %s\n", + rprintf(FERROR,"chdir %s : %s\n", dbuf,strerror(errno)); exit_cleanup(1); } @@ -664,7 +662,7 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) } if (verbose && recurse && !am_server && f != -1) - fprintf(FINFO,"done\n"); + rprintf(FINFO,"done\n"); clean_flist(flist); @@ -680,7 +678,7 @@ struct file_list *send_file_list(int f,int argc,char *argv[]) } if (verbose > 2) - fprintf(FINFO,"send_file_list done\n"); + rprintf(FINFO,"send_file_list done\n"); return flist; } @@ -692,8 +690,8 @@ struct file_list *recv_file_list(int f) unsigned char flags; if (verbose && recurse && !am_server) { - fprintf(FINFO,"receiving file list ... "); - fflush(FINFO); + rprintf(FINFO,"receiving file list ... "); + rflush(FINFO); } flist = (struct file_list *)malloc(sizeof(flist[0])); @@ -731,17 +729,17 @@ struct file_list *recv_file_list(int f) flist->count++; if (verbose > 2) - fprintf(FINFO,"recv_file_name(%s)\n",f_name(flist->files[i])); + rprintf(FINFO,"recv_file_name(%s)\n",f_name(flist->files[i])); } if (verbose > 2) - fprintf(FINFO,"received %d names\n",flist->count); + rprintf(FINFO,"received %d names\n",flist->count); clean_flist(flist); if (verbose && recurse && !am_server) { - fprintf(FINFO,"done\n"); + rprintf(FINFO,"done\n"); } /* now recv the uid/gid list. This was introduced in protocol version 15 */ @@ -755,7 +753,7 @@ struct file_list *recv_file_list(int f) } if (verbose > 2) - fprintf(FINFO,"recv_file_list done\n"); + rprintf(FINFO,"recv_file_list done\n"); return flist; @@ -850,7 +848,7 @@ void clean_flist(struct file_list *flist) strcmp(f_name(flist->files[i]), f_name(flist->files[i-1])) == 0) { if (verbose > 1 && !am_server) - fprintf(FINFO,"removing duplicate name %s from file list %d\n", + rprintf(FINFO,"removing duplicate name %s from file list %d\n", f_name(flist->files[i-1]),i-1); free_file(flist->files[i]); } @@ -874,7 +872,7 @@ char *f_name(struct file_struct *f) if (f->dirname) { sprintf(p, "%s/%s", f->dirname, f->basename); } else { - strcpy(p, f->basename); + strlcpy(p, f->basename, MAXPATHLEN-1); } return p;