]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/message.c
Fix race condition in close_msg that causes seg fault
[bacula/bacula] / bacula / src / lib / message.c
index fc7f22ae7dc91c3d8269e275b7a63f5556d74093..2a67c78ea6d35f48ca49b0d5bf4fabde5df9b49c 100644 (file)
@@ -517,6 +517,11 @@ void close_msg(JCR *jcr)
       return;
    }
    msgs->wait_not_in_use();          /* leaves fides_mutex set */
+   /* Note get_closing() does not lock because we are already locked */
+   if (msgs->get_closing()) {
+      msgs->unlock();
+      return;
+   }
    msgs->set_closing();
    msgs->unlock();