summaryrefslogtreecommitdiffstats
path: root/sys-apps/kbd/files/kbd-1.12-find-map-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/kbd/files/kbd-1.12-find-map-fix.patch')
-rw-r--r--sys-apps/kbd/files/kbd-1.12-find-map-fix.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/sys-apps/kbd/files/kbd-1.12-find-map-fix.patch b/sys-apps/kbd/files/kbd-1.12-find-map-fix.patch
new file mode 100644
index 0000000..ca24703
--- /dev/null
+++ b/sys-apps/kbd/files/kbd-1.12-find-map-fix.patch
@@ -0,0 +1,37 @@
+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]