3b5b188591
- selinux_check_passwd_access_internal(): respect deny_unknown - Silence -Wstringop-overflow warning from gcc 10.3.1 - Fixed misc compiler and static analyzer findings Resolves: rhbz#1938789
70 lines
2.7 KiB
Diff
70 lines
2.7 KiB
Diff
From 967d3d5d1b42b6483fc9135e7ac7d198fbd85212 Mon Sep 17 00:00:00 2001
|
||
From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
|
||
Date: Mon, 3 May 2021 17:10:42 +0200
|
||
Subject: [PATCH] libselinux: label_common(): do not discard const qualifier
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
As the const qualifier is discarded in label_common(), do not return a
|
||
const qualified pointer pointer from the local function `lookup_all()`.
|
||
|
||
label_file.c: In function ‘lookup_common’:
|
||
label_file.c:994:24: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
|
||
994 | struct spec *result = (struct spec*)matches[0];
|
||
| ^
|
||
|
||
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
|
||
---
|
||
libselinux/src/label_file.c | 10 +++++-----
|
||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||
|
||
diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c
|
||
index cfce23e0119e..b080fcf1305b 100644
|
||
--- a/libselinux/src/label_file.c
|
||
+++ b/libselinux/src/label_file.c
|
||
@@ -845,7 +845,7 @@ static void closef(struct selabel_handle *rec)
|
||
// Finds all the matches of |key| in the given context. Returns the result in
|
||
// the allocated array and updates the match count. If match_count is NULL,
|
||
// stops early once the 1st match is found.
|
||
-static const struct spec **lookup_all(struct selabel_handle *rec,
|
||
+static struct spec **lookup_all(struct selabel_handle *rec,
|
||
const char *key,
|
||
int type,
|
||
bool partial,
|
||
@@ -861,7 +861,7 @@ static const struct spec **lookup_all(struct selabel_handle *rec,
|
||
unsigned int sofar = 0;
|
||
char *sub = NULL;
|
||
|
||
- const struct spec **result = NULL;
|
||
+ struct spec **result = NULL;
|
||
if (match_count) {
|
||
*match_count = 0;
|
||
result = calloc(data->nspec, sizeof(struct spec*));
|
||
@@ -987,11 +987,11 @@ static struct spec *lookup_common(struct selabel_handle *rec,
|
||
const char *key,
|
||
int type,
|
||
bool partial) {
|
||
- const struct spec **matches = lookup_all(rec, key, type, partial, NULL);
|
||
+ struct spec **matches = lookup_all(rec, key, type, partial, NULL);
|
||
if (!matches) {
|
||
return NULL;
|
||
}
|
||
- struct spec *result = (struct spec*)matches[0];
|
||
+ struct spec *result = matches[0];
|
||
free(matches);
|
||
return result;
|
||
}
|
||
@@ -1054,7 +1054,7 @@ static bool hash_all_partial_matches(struct selabel_handle *rec, const char *key
|
||
assert(digest);
|
||
|
||
size_t total_matches;
|
||
- const struct spec **matches = lookup_all(rec, key, 0, true, &total_matches);
|
||
+ struct spec **matches = lookup_all(rec, key, 0, true, &total_matches);
|
||
if (!matches) {
|
||
return false;
|
||
}
|
||
--
|
||
2.32.0.rc1
|
||
|