| 
vt could allocate more than 2MB thus running over it's 2MB reserved
heap and stepping on the shared segment.  testcase:
	; vt
	; aux/write
	draw: events: ecanread stat error: segments overlap
the executable is actually allocating 2.8MB:
	; ps -a|grep vt
	quanstro       4235    0:00   0:00     2824K Pwrite   vt
	quanstro       4236    0:00   0:00      168K Pread    vt
	quanstro       4237    0:00   0:00      168K Pread    vt
	quanstro       4238    0:00   0:00      172K Pread    vt
	quanstro       4240    0:00   0:00      172K Pread    vt
	quanstro       4250    0:00   0:00      156K Pread    grep vt
the solution is to let the system place the shared segment.  the
rest of the patch is to make all the errors consctl fatal; only a
random subset had been.
i think that telnetd/telnet have similar code, though i don't
see with grep that they call malloc.
 |