Package: hurd Version: N/A Hi, I hope I don't make fuss about nothing, in case I don't understand the code. Anyway, it looks strange. In isofs/lookup.c (diskfs_get_directs), there is the first for-loop, which seems to check if there are enough entries available. I want to draw your attention to the "Ignore and skip RE entries" comment. /* Skip to ENTRY */ dirbuf = disk_image + (dp->dn->file_start << store->log2_block_size); bufp = dirbuf; for (i = 0; i < entry; i ++) { struct rrip_lookup rr; ep = (struct dirrect *) bufp; rrip_lookup (ep, &rr, 0); /* Ignore and skip RE entries */ if (rr.valid & VALID_RE) { bufp = bufp + ep->len; release_rrip (&rr); continue; } .... } It seems as if those RE entries should not be counted. This is supported by the following while-loop, which copies the valid entries into the return buffer. However, this can't work! because a continue in the for-loop will nevertheless increment the loop variable i. It looks as if the code was cut&pasted from the while loop, or an earlier while loop was changed into a for loop or so. If I had to guess, I would add a i-- in the if-block. But this is not all. The code looks suspicious in a second way, too. The value the incremented bufp points to is not checked for null. I don't know the ISO9660 standard, but if it could be that a RE entry is at the end of a logical sector, this code will overrun, because the validity check at the end of the for-loop is skipped (because of the continue): ... bufp = bufp + ep->len; /* If BUFP points at a null, then we have hit the last record in this logical sector. In that case, skip up to the next logical sector. */ if (*(char *)bufp == '\0') bufp = (void *) (((long) bufp & ~(logical_sector_size - 1)) + logical_sector_size); } If my analysis is true, the code needs to be rearranged a bit. Thanks, Marcus -- `Rhubarb is no Egyptian god.' Debian http://www.debian.org Check Key server Marcus Brinkmann GNU http://www.gnu.org for public PGP Key [EMAIL PROTECTED], [EMAIL PROTECTED] PGP Key ID 36E7CD09 http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/ [EMAIL PROTECTED]