aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-daemons/ippool/ippool/0001-Use-unsigned-int-type-for-1-bit-integer-bitfield.patch
blob: 0533616722635c49a94dbf8f9432b4f213875118 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
From 4788ce6ec602f6441970e1095572c4ff0e90c7c5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 17 Jan 2023 22:33:52 -0800
Subject: [PATCH] Use unsigned int type for 1-bit integer bitfield

In C++, signed integers are represented in two's complement. This also applies to signed bitfields.
A signed bitfield composed of one bit can therefore store a value in the range -1 to 0.
Assigning a value of 1 to such a bitfield should produce a warning since it is out of range of representable values.
Therefore fix this case by using unsigned int instead of signed int

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 usl/usl_signal.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/usl/usl_signal.c b/usl/usl_signal.c
index 45ddd94..8c1d4d0 100644
--- a/usl/usl_signal.c
+++ b/usl/usl_signal.c
@@ -39,12 +39,12 @@ struct usl_notifier {
 };
 
 typedef struct {
-	volatile int	sighup:1;
-	volatile int	sigterm:1;
-	volatile int	sigchld:1;
-	volatile int	sigusr1:1;
-	volatile int	sigusr2:1;
-	volatile int	running:1;
+	volatile unsigned int	sighup:1;
+	volatile unsigned int	sigterm:1;
+	volatile unsigned int	sigchld:1;
+	volatile unsigned int	sigusr1:1;
+	volatile unsigned int	sigusr2:1;
+	volatile unsigned int	running:1;
 	sig_atomic_t	waiting;
 	sigjmp_buf 	sigjmp;
 } usl_signal_data_t;
-- 
2.39.1