42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
|
|
From 0aa974a439c60bd19e504d6a583cbae770de3701 Mon Sep 17 00:00:00 2001
|
|||
|
|
From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
|
|||
|
|
Date: Fri, 8 Apr 2022 15:10:53 +0200
|
|||
|
|
Subject: [PATCH] libselinux: limit has buffer size
|
|||
|
|
MIME-Version: 1.0
|
|||
|
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|
|||
|
|
The `struct selabel_digest` member `hashbuf_size` is used to compute
|
|||
|
|
hashes via `Sha1Update()`, which takes uint32_t as length parameter
|
|||
|
|
type. Use that same type for `hashbuf_size` to avoid potential value
|
|||
|
|
truncations, as the overflow check in `digest_add_specfile()` on
|
|||
|
|
`hashbuf_size` is based on it.
|
|||
|
|
|
|||
|
|
label_support.c: In function ‘digest_gen_hash’:
|
|||
|
|
label_support.c:125:53: warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘uint32_t’ {aka ‘unsigned int’} may change value [-Wconversion]
|
|||
|
|
125 | Sha1Update(&context, digest->hashbuf, digest->hashbuf_size);
|
|||
|
|
| ~~~~~~^~~~~~~~~~~~~~
|
|||
|
|
|
|||
|
|
Acked-by: James Carter <jwcart2@gmail.com>
|
|||
|
|
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
|
|||
|
|
---
|
|||
|
|
libselinux/src/label_internal.h | 2 +-
|
|||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|||
|
|
|
|||
|
|
diff --git a/src/label_internal.h b/src/label_internal.h
|
|||
|
|
index 782c6aa8..82a762f7 100644
|
|||
|
|
--- a/src/label_internal.h
|
|||
|
|
+++ b/src/label_internal.h
|
|||
|
|
@@ -57,7 +57,7 @@ int selabel_service_init(struct selabel_handle *rec,
|
|||
|
|
struct selabel_digest {
|
|||
|
|
unsigned char *digest; /* SHA1 digest of specfiles */
|
|||
|
|
unsigned char *hashbuf; /* buffer to hold specfiles */
|
|||
|
|
- size_t hashbuf_size; /* buffer size */
|
|||
|
|
+ uint32_t hashbuf_size; /* buffer size */
|
|||
|
|
size_t specfile_cnt; /* how many specfiles processed */
|
|||
|
|
char **specfile_list; /* and their names */
|
|||
|
|
};
|
|||
|
|
--
|
|||
|
|
2.27.0
|
|||
|
|
|