buffer overflow patches from mhpower@mit.edu (Matt Power)

This commit is contained in:
Andrew Tridgell
1997-12-30 17:36:58 +00:00
parent dc7a947853
commit 684b4e3113
2 changed files with 16 additions and 2 deletions

13
flist.c
View File

@@ -373,14 +373,23 @@ static void send_directory(int f,struct file_list *flist,char *dir)
fname[MAXPATHLEN-1]=0;
l = strlen(fname);
if (fname[l-1] != '/') {
if (l == MAXPATHLEN-1) {
fprintf(FERROR,"skipping long-named directory %s\n",fname);
closedir(d);
return;
}
strcat(fname,"/");
l++;
}
p = fname + strlen(fname);
if (cvs_exclude) {
strcpy(p,".cvsignore");
local_exclude_list = make_exclude_list(fname,NULL,0);
if (strlen(fname) + strlen(".cvsignore") <= MAXPATHLEN-1) {
strcpy(p,".cvsignore");
local_exclude_list = make_exclude_list(fname,NULL,0);
} else {
fprintf(FERROR,"cannot cvs-exclude in long-named directory %s\n",fname);
}
}
for (di=readdir(d); di; di=readdir(d)) {

View File

@@ -803,6 +803,11 @@ off_t send_files(struct file_list *flist,int f_out,int f_in)
if (file->dir) {
strncpy(fname,file->dir,MAXPATHLEN-1);
fname[MAXPATHLEN-1] = 0;
if (strlen(fname) == MAXPATHLEN-1) {
fprintf(FERROR, "send_files failed on long-named directory %s\n",
fname);
return -1;
}
strcat(fname,"/");
}
strncat(fname,file->name,MAXPATHLEN-strlen(fname));