Blame SOURCES/fapolicyd-trust.patch

a749e0
From c7d409cebf86b1c71192fd79ec5f5582f4f00f30 Mon Sep 17 00:00:00 2001
a749e0
From: Radovan Sroka <rsroka@redhat.com>
a749e0
Date: Tue, 2 Jun 2020 21:24:28 +0200
a749e0
Subject: [PATCH] Ignore db errors from check_trust_database() (#70)
a749e0
a749e0
- mark every subject and object as not trusted
a749e0
  when it is not possible to do a query
a749e0
a749e0
- previously, when error occurred then subject or
a749e0
  object was actually considered to be trusted
a749e0
a749e0
Signed-off-by: Radovan Sroka <rsroka@redhat.com>
a749e0
---
a749e0
 src/library/event.c | 23 +++++++++++++++++------
a749e0
 1 file changed, 17 insertions(+), 6 deletions(-)
a749e0
a749e0
diff --git a/src/library/event.c b/src/library/event.c
a749e0
index 564c120..2a4083b 100644
a749e0
--- a/src/library/event.c
a749e0
+++ b/src/library/event.c
a749e0
@@ -339,9 +339,15 @@ subject_attr_t *get_subj_attr(event_t *e, subject_type_t t)
a749e0
 
a749e0
 			subj.val = 0;
a749e0
 			if (exe) {
a749e0
-				if (exe->str && check_trust_database(exe->str,
a749e0
-								     NULL, 0))
a749e0
-					subj.val = 1;
a749e0
+				if (exe->str) {
a749e0
+					int res = check_trust_database(exe->str, NULL, 0);
a749e0
+
a749e0
+					// ignore -1
a749e0
+					if (res == 1)
a749e0
+						subj.val = 1;
a749e0
+					else
a749e0
+						subj.val = 0;
a749e0
+				}
a749e0
 			}
a749e0
 			}
a749e0
 			break;
a749e0
@@ -422,10 +428,15 @@ object_attr_t *get_obj_attr(event_t *e, object_type_t t)
a749e0
 		case OBJ_TRUST: {
a749e0
 			object_attr_t *path =  get_obj_attr(e, PATH);
a749e0
 
a749e0
-			if (path && path->o && check_trust_database(path->o,
a749e0
-							    o->info, e->fd))
a749e0
-			obj.val = 1;
a749e0
+			if (path && path->o) {
a749e0
+				int res = check_trust_database(path->o, o->info, e->fd);
a749e0
 
a749e0
+				// ignore -1
a749e0
+				if (res == 1)
a749e0
+					obj.val = 1;
a749e0
+				else
a749e0
+					obj.val = 0;
a749e0
+			}
a749e0
 			}
a749e0
 			break;
a749e0
 		case FMODE: