Hello,
When swich-e test if a file should be indexed or
not based on it's suffix (NoContents rule among others),
it will cause a memory fault if the suffix is more than
10 characters in lenght (MAXSUFFIXLEN constant).
Ie: afile.withalongsuffix will crash the program.
In the function : isoksuffix(), the characters following
the last "." in the filename are copied to a buffer
of MAXSUFFIXLEN which may quite easly be too small...
I suggest the following changes to issuffix() :
int isoksuffix(filename, rulelist)
char *filename;
struct swline *rulelist;
{
int badfile, len;
char *c, suffix[MAXSUFFIXLEN], checksuffix[MAXSUFFIXLEN];
struct swline *tmplist;
tmplist = rulelist;
if (tmplist == NULL)
return 1;
if ((c = (char *) strrchr(filename, '.')) == NULL)
return 0;
if (strlen(c+1) >= MAXSUFFIXLEN)
return 0;
badfile = 1;
..
Note that in the above I choose to consider that file
with a too long suffix _should_ be indexed. That's because
I am using this function with the HTML method and have
database query in URLs.
Cheers,
Yann Stettler
--
-------------------------------------------------------------------
TheNet - Internet Services AG CohProg SaRL
stettler@thenet.ch stettler@cohprog.com
http://www.thenet.ch/ http://www.cohprog.com/
---**---
Anime and Manga Services http://www.animanga.com/
Received on Thu Dec 10 10:57:06 1998