:So, never do stupid things as root; that's always my moto. Well, so I did :something stupid as root, but it wasn't inherrently *that* stupid, at :least not stupid enough to require a hard boot :). Below is the source :... :Except I decided to test that feature that overrides the device filename :(normally /dev/audit). Instead, I chose /dev/mem. Don't do that (ouch). :The machine began to churn -- ok, so the buffer expands as necessary :without limit, which is something that will go away once I actually write :... :swap_pager_getswapspace: failed : :from the kernel. And needless to say, it loops fairly tightly and we :...
Uh. Mmmmmm...... Hmmmmmm :-) i = read(fd, &size, sizeof(size)); ... malloc(bufsize * sizeof(char)) i = read(fd, buf, bufsize); When you are reading /dev/mem, 'size' can turn out to be anything. You are then allocating 'size' bytes ( which could be some insane value ). Finally, you try to read() from /dev/mem into the buffer the same insane value. The system is almost certainly trying to kill this process, but it can't because the process is stuck in an uninterruptable system read() of an insane amount of data. I don't think there is anything to 'fix' here. The system is making the best of a bad situation. Perhaps, though, we could test for signal 9 within the insanely huge read() loops and pop out. -Matt To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-current" in the body of the message