63 lines
2.2 KiB
Diff
63 lines
2.2 KiB
Diff
|
From 5218bf4b262ae6c3aa0ec72c5116a73bbdb7806f Mon Sep 17 00:00:00 2001
|
|||
|
From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
|
|||
|
Date: Tue, 6 Jul 2021 19:54:29 +0200
|
|||
|
Subject: [PATCH] checkpolicy: avoid potential use of uninitialized variable
|
|||
|
MIME-Version: 1.0
|
|||
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|||
|
checkpolicy.c: In function ‘main’:
|
|||
|
checkpolicy.c:1000:25: error: ‘tsid’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
|
|||
|
1000 | printf("if_sid %d default_msg_sid %d\n", ssid, tsid);
|
|||
|
| ^
|
|||
|
|
|||
|
checkpolicy.c: In function ‘main’:
|
|||
|
checkpolicy.c:971:25: error: ‘tsid’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
|
|||
|
971 | printf("fs_sid %d default_file_sid %d\n", ssid, tsid);
|
|||
|
| ^
|
|||
|
|
|||
|
Found by GCC 11 with LTO enabled.
|
|||
|
|
|||
|
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
|
|||
|
---
|
|||
|
checkpolicy/checkpolicy.c | 16 ++++++++++++----
|
|||
|
1 file changed, 12 insertions(+), 4 deletions(-)
|
|||
|
|
|||
|
diff --git a/checkpolicy/checkpolicy.c b/checkpolicy/checkpolicy.c
|
|||
|
index 58edcc34e8cc..e6cfd3372022 100644
|
|||
|
--- a/checkpolicy/checkpolicy.c
|
|||
|
+++ b/checkpolicy/checkpolicy.c
|
|||
|
@@ -970,8 +970,12 @@ int main(int argc, char **argv)
|
|||
|
printf("fs kdevname? ");
|
|||
|
FGETS(ans, sizeof(ans), stdin);
|
|||
|
ans[strlen(ans) - 1] = 0;
|
|||
|
- sepol_fs_sid(ans, &ssid, &tsid);
|
|||
|
- printf("fs_sid %d default_file_sid %d\n", ssid, tsid);
|
|||
|
+ ret = sepol_fs_sid(ans, &ssid, &tsid);
|
|||
|
+ if (ret) {
|
|||
|
+ printf("unknown fs kdevname\n");
|
|||
|
+ } else {
|
|||
|
+ printf("fs_sid %d default_file_sid %d\n", ssid, tsid);
|
|||
|
+ }
|
|||
|
break;
|
|||
|
case '9':
|
|||
|
printf("protocol? ");
|
|||
|
@@ -999,8 +1003,12 @@ int main(int argc, char **argv)
|
|||
|
printf("netif name? ");
|
|||
|
FGETS(ans, sizeof(ans), stdin);
|
|||
|
ans[strlen(ans) - 1] = 0;
|
|||
|
- sepol_netif_sid(ans, &ssid, &tsid);
|
|||
|
- printf("if_sid %d default_msg_sid %d\n", ssid, tsid);
|
|||
|
+ ret = sepol_netif_sid(ans, &ssid, &tsid);
|
|||
|
+ if (ret) {
|
|||
|
+ printf("unknown name\n");
|
|||
|
+ } else {
|
|||
|
+ printf("if_sid %d default_msg_sid %d\n", ssid, tsid);
|
|||
|
+ }
|
|||
|
break;
|
|||
|
case 'b':{
|
|||
|
char *p;
|
|||
|
--
|
|||
|
2.32.0
|
|||
|
|