This fixes a bug where an attempt to load a file path which contains an intermediate path element which is a file on the CD rather then a directory results in the file being accessed like a directory... which can lockup the boot code. The fix is simple. Check to see if an intermediate path element really represents a directory and return ENOENT if it doesn't. This situation can occur due to searches via the module search path. -Matt Matthew Dillon <dillon_at_backplane.com> Index: cd9660.c =================================================================== RCS file: /cvs/src/lib/libstand/cd9660.c,v retrieving revision 1.3 diff -u -r1.3 cd9660.c --- cd9660.c 8 Aug 2003 04:18:34 -0000 1.3 +++ cd9660.c 1 Dec 2003 08:37:25 -0000 _at__at_ -372,7 +372,13 _at__at_ rec = *dp; while (*path && *path != '/') /* look for next component */ path++; - if (*path) path++; /* skip '/' */ + if (*path == '/') { /* skip /, make sure is dir */ + path++; + if (*path && (isonum_711(dp->flags) & 2) == 0) { + rc = ENOENT; /* not directory */ + goto out; + } + } } /* allocate file system specific data structure */Received on Sun Nov 30 2003 - 23:55:55 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:32 UTC