Blame SOURCES/0011-libselinux-selabel_get_digests_all_partial_matches-f.patch

ffbc92
From d0c02882b7fdcf5e6478f9a82ac2946174f4bca4 Mon Sep 17 00:00:00 2001
ffbc92
From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
ffbc92
Date: Mon, 3 May 2021 17:10:53 +0200
ffbc92
Subject: [PATCH] libselinux: selabel_get_digests_all_partial_matches: free
ffbc92
 memory after FTS_D block
ffbc92
MIME-Version: 1.0
ffbc92
Content-Type: text/plain; charset=UTF-8
ffbc92
Content-Transfer-Encoding: 8bit
ffbc92
ffbc92
Free all memory from `selabel_get_digests_all_partial_matches()` in case
ffbc92
of success and failure.
ffbc92
ffbc92
Found by clang-analyzer.
ffbc92
ffbc92
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
ffbc92
---
ffbc92
 .../utils/selabel_get_digests_all_partial_matches.c    | 10 +++++-----
ffbc92
 1 file changed, 5 insertions(+), 5 deletions(-)
ffbc92
ffbc92
diff --git a/libselinux/utils/selabel_get_digests_all_partial_matches.c b/libselinux/utils/selabel_get_digests_all_partial_matches.c
ffbc92
index 0c2edc67771d..e28833d2ce97 100644
ffbc92
--- a/libselinux/utils/selabel_get_digests_all_partial_matches.c
ffbc92
+++ b/libselinux/utils/selabel_get_digests_all_partial_matches.c
ffbc92
@@ -128,7 +128,7 @@ int main(int argc, char **argv)
ffbc92
 					printf("No SHA1 digest available for: %s\n",
ffbc92
 					       ftsent->fts_path);
ffbc92
 					printf("as file_context entry is \"<<none>>\"\n");
ffbc92
-					break;
ffbc92
+					goto cleanup;
ffbc92
 				}
ffbc92
 
ffbc92
 				printf("The file_context entries for: %s\n",
ffbc92
@@ -149,11 +149,11 @@ int main(int argc, char **argv)
ffbc92
 							xattr_digest[i]);
ffbc92
 					printf("%s\n", sha1_buf);
ffbc92
 				}
ffbc92
-
ffbc92
-				free(xattr_digest);
ffbc92
-				free(calculated_digest);
ffbc92
-				free(sha1_buf);
ffbc92
 			}
ffbc92
+			cleanup:
ffbc92
+			free(xattr_digest);
ffbc92
+			free(calculated_digest);
ffbc92
+			free(sha1_buf);
ffbc92
 			break;
ffbc92
 		}
ffbc92
 		default:
ffbc92
-- 
ffbc92
2.32.0
ffbc92