[comp.os.minix] How to crash MINIX in a nice way, and the bugfix

veench@ark.UUCP (02/27/87)

How to create the crash:
	cat 2>&1 | cat
	type <del>

This causes a do_close on every filedescriptor of the first cat,
and twice a release and on the second cat.
So the variable reviving has the value 2,
and in get_work there will only one proces be found to be revived.
The fix is simple,

On page 644 of the book in file fs/pipe.c on line 10549 is found:
if (rfp->fp_suspended == NOT_SUSPENDED) return;

This should be:

if (rfp->fp_suspended == NOT_SUSPENDED || rfp->fp_revived == REVIVING) return;
					  ---------------------------

					Dick van Veen