setroubleshoot/0003-framework-sealert-exit-on-any-connection-close.patch
DistroBaker 4abd313890 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/setroubleshoot.git#c42ca71e4651d81a72d22eaef24695f60bcac6d5
2021-02-06 18:35:30 +00:00

31 lines
1.4 KiB
Diff

From e339956442fb7284bce31e132b0be7ad0f3badc5 Mon Sep 17 00:00:00 2001
From: Vit Mojzis <vmojzis@redhat.com>
Date: Tue, 2 Feb 2021 13:18:49 +0100
Subject: [PATCH] framework/sealert: exit on any connection close
SECommandLine is only connecting to setroubleshootd for a short time.
Therefore any connection close from "server" side should be treated as
error.
This prevents "sealert" from hanging when setroubleshootd crashes.
---
framework/src/sealert | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/framework/src/sealert b/framework/src/sealert
index 7839367..bae0c81 100755
--- a/framework/src/sealert
+++ b/framework/src/sealert
@@ -488,7 +488,7 @@ class SECommandLine(object):
def on_connection_state_change(self, connection, connection_state, flags, flags_added, flags_removed):
log_debug("%s.on_connection_state_change: connection_state=%s flags_added=%s flags_removed=%s address=%s" % (self.__class__.__name__, connection_state, connection_state.flags_to_string(flags_added), connection_state.flags_to_string(flags_removed), connection.socket_address))
- if flags_added & ConnectionState.ERROR:
+ if (flags_added & (ConnectionState.ERROR | ConnectionState.HUP)) or (flags_removed & ConnectionState.OPEN):
errno, strerror = connection_state.get_result()
print("failed to connect to server: %s" % (strerror), file=sys.stderr)
sys.exit(1)
--
2.29.2