Not a security hole this time, but possibly a bug in Irix 6.3. Type the
following into an (R5000) O2 and run it....
#include <sys/cachectl.h>
void blah(void) {}
void main(void)
{
int p = getpagesize();
if (cachectl((void *)((((long)blah-p+1)/p)*p), p, UNCACHEABLE) < 0)
perror("cachectl");
blah();
}
The result (at least, for me) is a frozen, unkillable process.
Interestingly the load average on the machine goes up by one, although
the machine itself doesn't appear to get slower.
Looks like the R5000 doesn't like executing code on a non cacheable
page.
Regards,
David
-- David Hedley (hedley@cs.bris.ac.uk) finger hedley@cs.bris.ac.uk for PGP key Computer Graphics Group | University of Bristol | UK