In getptable(), we allocate a buffer
/* read the whole file */
p = malloc(st.st_size);
(void)pread(fd, p, st.st_size, 0);
but then we change the value of p
/* the file starts with a struct prheader */
prp = (prheader_t *)p;
p += sizeof(prheader_t);
So, it will fail when p is freed.
The fix is as simple as this:
--- machine/m_sunos5.c_orig...
2009-03-12 11:07:05 UTC in Top