If I had to guess, it would be that the DIR_SIZE macro is miscalculating
the size of the direct struct that's assigned to p in line 53, leading to
a buffer overflow in line 55.
Try adding an assert that verifies that DIR_SIZE(d) is greater than, or
equal to, ((d->d_name + strlen(d->d_name) + 1) - d). If that assert
bites, that's the cause of the problem.
The whole reason why a private Scandir is used is that, for the longest
time, Solaris didn't have a scandir() call at all and when it did it was
broken. I forget why. Maybe SUN finally figured out how to do a working
scandir() call, but if they've broken DIR_SIZE() that is bad news.
-- Mark --
http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
[email protected]
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw