diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2023-02-01 11:55:10 +0100 |
---|---|---|
committer | Jason Zaman <jason@perfinion.com> | 2023-02-10 22:19:00 -0800 |
commit | 1609b9fdfddc1f6baa1b38b57018b16af9c5471a (patch) | |
tree | 2eff69b32355efb347035b10e7e745118090592d | |
parent | 06512c4373a9a1241d03e2428badee7bdeae4159 (diff) | |
download | selinux-1609b9fdfddc1f6baa1b38b57018b16af9c5471a.tar.gz |
libselinux: restore: use fixed sized integer for hash index
The hash mask is set to 2^16 - 1, which does not fit into a signed 16
bit integer. Use uint32_t to be on the safe side. Also use size_t for
counting in debug function.
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Acked-by: Jason Zaman <jason@perfinion.com>
-rw-r--r-- | libselinux/src/selinux_restorecon.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c index 40a759f0..7ef2d45d 100644 --- a/libselinux/src/selinux_restorecon.c +++ b/libselinux/src/selinux_restorecon.c @@ -435,7 +435,8 @@ static int filespec_add(ino_t ino, const char *con, const char *file, const struct rest_flags *flags) { file_spec_t *prevfl, *fl; - int h, ret; + uint32_t h; + int ret; struct stat64 sb; __pthread_mutex_lock(&fl_mutex); @@ -524,7 +525,8 @@ unlock_1: static void filespec_eval(void) { file_spec_t *fl; - int h, used, nel, len, longest; + uint32_t h; + size_t used, nel, len, longest; if (!fl_head) return; @@ -544,7 +546,7 @@ static void filespec_eval(void) } selinux_log(SELINUX_INFO, - "filespec hash table stats: %d elements, %d/%d buckets used, longest chain length %d\n", + "filespec hash table stats: %zu elements, %zu/%zu buckets used, longest chain length %zu\n", nel, used, HASH_BUCKETS, longest); } #else @@ -559,7 +561,7 @@ static void filespec_eval(void) static void filespec_destroy(void) { file_spec_t *fl, *tmp; - int h; + uint32_t h; if (!fl_head) return; |