Oh, but I fixed it already. Patch below. Andries --- kbd-1.12.orig/src/findfile.c Fri Jan 16 20:45:31 2004 +++ kbd-1.12/src/findfile.c Wed Jan 28 23:29:35 2004 @@ -70,6 +70,7 @@ FILE *fp = NULL; DIR *d; struct dirent *de; + struct stat statbuf; char *ff, *fdir, *p, *q, **sp; struct decompressor *dc; int secondpass = 0; @@ -104,7 +105,6 @@ okdir = (ff && strcmp(de->d_name, fdir) == 0); if ((secondpass && recdepth) || okdir) { - struct stat statbuf; char *a; a = xmalloc(strlen(dir) + strlen(de->d_name) + 2); @@ -137,6 +137,11 @@ sprintf(pathname, "%s/%s", dir, de->d_name); + /* Is this a regular file? */ + if (stat(pathname, &statbuf) != 0 || + !S_ISREG(statbuf.st_mode)) + continue; + /* Does tail consist of a known suffix and possibly a compression suffix? */ for(sp = suf; *sp; sp++) { [pasted and cut from another window, so with whitespace damage]