blob: 0533616722635c49a94dbf8f9432b4f213875118 [file] [log] [blame]
Andrew Geisslerc5535c92023-01-27 16:10:19 -06001From 4788ce6ec602f6441970e1095572c4ff0e90c7c5 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 17 Jan 2023 22:33:52 -0800
4Subject: [PATCH] Use unsigned int type for 1-bit integer bitfield
5
6In C++, signed integers are represented in two's complement. This also applies to signed bitfields.
7A signed bitfield composed of one bit can therefore store a value in the range -1 to 0.
8Assigning a value of 1 to such a bitfield should produce a warning since it is out of range of representable values.
9Therefore fix this case by using unsigned int instead of signed int
10
11Upstream-Status: Pending
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 usl/usl_signal.c | 12 ++++++------
15 1 file changed, 6 insertions(+), 6 deletions(-)
16
17diff --git a/usl/usl_signal.c b/usl/usl_signal.c
18index 45ddd94..8c1d4d0 100644
19--- a/usl/usl_signal.c
20+++ b/usl/usl_signal.c
21@@ -39,12 +39,12 @@ struct usl_notifier {
22 };
23
24 typedef struct {
25- volatile int sighup:1;
26- volatile int sigterm:1;
27- volatile int sigchld:1;
28- volatile int sigusr1:1;
29- volatile int sigusr2:1;
30- volatile int running:1;
31+ volatile unsigned int sighup:1;
32+ volatile unsigned int sigterm:1;
33+ volatile unsigned int sigchld:1;
34+ volatile unsigned int sigusr1:1;
35+ volatile unsigned int sigusr2:1;
36+ volatile unsigned int running:1;
37 sig_atomic_t waiting;
38 sigjmp_buf sigjmp;
39 } usl_signal_data_t;
40--
412.39.1
42