+2012-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
+ This will cause a production Emacs to dump core instead of
+ infinite-looping.
+
2012-12-07 Dmitry Antipov <dmantipov@yandex.ru>
* frame.c (make_frame): Do not set window's buffer to t.
while ((pid = waitpid (child, status, options)) < 0)
{
- /* CHILD must be a child process that has not been reaped, and
- STATUS and OPTIONS must be valid. */
- eassert (errno == EINTR);
+ /* Check that CHILD is a child process that has not been reaped,
+ and that STATUS and OPTIONS are valid. Otherwise abort,
+ as continuing after this internal error could cause Emacs to
+ become confused and kill innocent-victim processes. */
+ if (errno != EINTR)
+ emacs_abort ();
/* Note: the MS-Windows emulation of waitpid calls QUIT
internally. */