diff mbox series

[2/7] libsepol: use correct type to avoid truncations

Message ID 20231128182334.57740-2-cgzones@googlemail.com (mailing list archive)
State Accepted
Commit 4f1435dd51f8
Delegated to: Petr Lautrbach
Headers show
Series [1/7] libsepol: validate conditional type rules have a simple default type | expand

Commit Message

Christian Göttsche Nov. 28, 2023, 6:23 p.m. UTC
Avoid truncations of the read 32 bit unsigned integer:

    conditional.c:764:8: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 3758096384 (32-bit, unsigned) to type 'int' changed the value to -536870912 (32-bit, signed)
    conditional.c:831:8: runtime error: implicit conversion from type 'uint32_t' (aka 'unsigned int') of value 4280295456 (32-bit, unsigned) to type 'int' changed the value to -14671840 (32-bit, signed)

Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
---
 libsepol/src/conditional.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/libsepol/src/conditional.c b/libsepol/src/conditional.c
index 24380ea0..420c7b6c 100644
--- a/libsepol/src/conditional.c
+++ b/libsepol/src/conditional.c
@@ -746,8 +746,8 @@  static int expr_isvalid(policydb_t * p, cond_expr_t * expr)
 
 static int cond_read_node(policydb_t * p, cond_node_t * node, void *fp)
 {
-	uint32_t buf[2];
-	int len, i, rc;
+	uint32_t buf[2], i, len;
+	int rc;
 	cond_expr_t *expr = NULL, *last = NULL;
 
 	rc = next_entry(buf, fp, sizeof(uint32_t));
@@ -821,8 +821,8 @@  static int cond_read_node(policydb_t * p, cond_node_t * node, void *fp)
 int cond_read_list(policydb_t * p, cond_list_t ** list, void *fp)
 {
 	cond_node_t *node, *last = NULL;
-	uint32_t buf[1];
-	int i, len, rc;
+	uint32_t buf[1], i, len;
+	int rc;
 
 	rc = next_entry(buf, fp, sizeof(uint32_t));
 	if (rc < 0)