commit e4aba6e17c43a182aa41970dd6da8462404dad4f
Author: Jean-Marc Lasgouttes <jean-marc.lasgout...@inria.fr>
Date:   Tue Jul 11 15:28:06 2017 +0200

    When cleaning up before quitting, take care of exceptions
    
    We do not want the cleanup work to be interrupted by a buffer exception.
    
    Spotted by coverity. See bug #9979 for discussion.
    
    (cherry picked from commit 0d565f7b350b4dfecfa9337b4b80173282d191ab)
---
 src/LyX.cpp |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/LyX.cpp b/src/LyX.cpp
index d2484d1..a202f5b 100644
--- a/src/LyX.cpp
+++ b/src/LyX.cpp
@@ -380,8 +380,12 @@ void LyX::prepareExit()
        // Write the index file of the converter cache
        ConverterCache::get().writeIndex();
 
-       // close buffers first
-       pimpl_->buffer_list_.closeAll();
+       // closing buffer may throw exceptions, but we ignore them since we
+       // are quitting.
+       try {
+               // close buffers first
+               pimpl_->buffer_list_.closeAll();
+       } catch (ExceptionMessage const &) {}
 
        // register session changes and shutdown server and socket
        if (use_gui) {

Reply via email to