Blame SOURCES/0002-sbus-register-filter-on-new-connection.patch

71e593
From 929a2b84cbb63312c2d797ab7048003c6f5e0c71 Mon Sep 17 00:00:00 2001
71e593
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina@redhat.com>
71e593
Date: Wed, 5 Sep 2018 15:08:52 +0200
71e593
Subject: [PATCH] sbus: register filter on new connection
71e593
71e593
The filter is not again registered on new connection when the old connection
71e593
was lost. This caused a segfault when the router is destroyed during shutdown.
71e593
71e593
It also would not allow to recieve and process any messages as the filter
71e593
function is needed for that. However, this was not very visible with
71e593
current sssd architecture.
71e593
71e593
Steps to reproduce:
71e593
1. Run SSSD
71e593
2. pkill sssd_be
71e593
3. Wait for responders to reconnect to backend
71e593
4. Shutdown SSSD
71e593
5. It will crash without this patch
71e593
71e593
Resolves:
71e593
https://pagure.io/SSSD/sssd/issue/3821
71e593
71e593
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
71e593
(cherry picked from commit 55d5b43543b5ef62322fe635fe8108410cb4ea77)
71e593
---
71e593
 src/sbus/router/sbus_router.c | 7 +++++++
71e593
 1 file changed, 7 insertions(+)
71e593
71e593
diff --git a/src/sbus/router/sbus_router.c b/src/sbus/router/sbus_router.c
71e593
index 24c2c76475c130343eb4319a76dfa91f40d2958d..d31cef1b4c253b927b1b8e1c3d7daef14eb26dd6 100644
71e593
--- a/src/sbus/router/sbus_router.c
71e593
+++ b/src/sbus/router/sbus_router.c
71e593
@@ -364,6 +364,13 @@ errno_t
71e593
 sbus_router_reset(struct sbus_connection *conn)
71e593
 {
71e593
     errno_t ret;
71e593
+    bool bret;
71e593
+
71e593
+    bret = sbus_router_filter_add(conn->router);
71e593
+    if (!bret) {
71e593
+        DEBUG(SSSDBG_CRIT_FAILURE, "Unable to register message filter!\n");
71e593
+        return EFAULT;
71e593
+    }
71e593
71e593
     ret = sbus_router_reset_listeners(conn);
71e593
     if (ret != EOK) {
71e593
--
71e593
2.14.4