From f6c29f62283b05ca12bc032870b5e69bd50d82ba Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 15 Feb 2023 18:17:33 +0100 Subject: Fix accessing bit 31 Shifting (signed) 1 to left 31 positions is undefined behavior. So make this an unsigned so it becomes defined behavior. --- procfs/process.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'procfs/process.c') diff --git a/procfs/process.c b/procfs/process.c index f608bed6..a9ba51ab 100644 --- a/procfs/process.c +++ b/procfs/process.c @@ -47,8 +47,8 @@ static char state_char (struct proc_stat *ps) { int i; - for (i = 0; (1 << i) & (PSTAT_STATE_P_STATES | PSTAT_STATE_T_STATES); i++) - if (proc_stat_state (ps) & (1 << i)) + for (i = 0; (1U << i) & (PSTAT_STATE_P_STATES | PSTAT_STATE_T_STATES); i++) + if (proc_stat_state (ps) & (1U << i)) return proc_stat_state_tags[i]; return '?'; @@ -69,7 +69,7 @@ static const char *state_string (struct proc_stat *ps) int i; for (i = 0; state_strings[i]; i++) - if (proc_stat_state (ps) & (1 << i)) + if (proc_stat_state (ps) & (1U << i)) return state_strings[i]; return "? (unknown)"; -- cgit v1.2.3