tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: possible opendir bug?



>> I'm not sure to what extent use of uninitialized memory is
>> considered a bug when, as here, the code is correct regardless of
>> what value it contains.
> It is a bug (and should be detected in builds with proper -fsanitize=
> compiler options in -current at least).
There's a -fsanitize= option affecting malloc()ed block contents??
I wonder why it hasn't been picked up already, then.
> Do you have a reproducer handy?
I noticed it with...su, I think it was, but that's just an artifact of
which processes I happened to run after getting the emulator to that
point. Anything that calls opendir() and readdir() on a should trigger
it. Here's a tiny example. This compiles and runs under the emulator,
but when malloc-undefinedness is turned on, it trips.
#include <dirent.h>
int main(void);
int main(void)
{
 DIR *d;
 struct dirent *e;
 d = opendir(".");
 if (d) e = readdir(d);
 // don't let the above be "optimized" away
 (void)((volatile struct dirent *)e)->d_fileno;
 return(0);
}
/~\ The ASCII				 Mouse
\ / Ribbon Campaign
 X Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index

AltStyle によって変換されたページ (->オリジナル) /