From 2b1e18ae852c1490dfa22adc71f7582a1258da60 Mon Sep 17 00:00:00 2001 From: Yuan Fu Date: Mon, 7 Oct 2019 18:47:54 -0400 Subject: [PATCH] Protect against errors in gdb-mi.el handlers * lisp/progmodes/gdb-mi.el (gdb-handle-reply): Handle errors in 'handler-function' so the cleanup code after it runs safely. (Bug#39178) --- lisp/progmodes/gdb-mi.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 2978d4a7672..4b0fd66c7ed 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -324,7 +324,10 @@ in `gdb-handler-list' and clears all pending handlers invalidated by the reception of this reply." (let ((handler-function (gdb-get-handler-function token-number))) (when handler-function - (funcall handler-function) + (condition-case err + ;; protect against errors in handler-function + (funcall handler-function) + (error (message (error-message-string err)))) (gdb-delete-handler token-number)))) (defun gdb-remove-all-pending-triggers () -- 2.39.2