aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-02 00:37:00 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-02 00:37:00 +0100
commit0cc80b3913489e74f6d5a0ac9b8a4c5523d9cecd (patch)
tree162fe5f68fbf68498deb46482b5b5c3f2cb05261
parentd21b09b328956996466f35a45b28c4ab51f1f4e3 (diff)
downloadhurd-0cc80b3913489e74f6d5a0ac9b8a4c5523d9cecd.tar.gz
hurd-0cc80b3913489e74f6d5a0ac9b8a4c5523d9cecd.tar.bz2
hurd-0cc80b3913489e74f6d5a0ac9b8a4c5523d9cecd.zip
Avoid undefined-behavior
1 << 31 is undefined behavior, 1 needs to be made unsigned for << 31 to be defined behavior.
-rw-r--r--ext2fs/ext2fs.h6
-rw-r--r--libpager/data-return.c10
2 files changed, 8 insertions, 8 deletions
diff --git a/ext2fs/ext2fs.h b/ext2fs/ext2fs.h
index 88c9fe81..c17cf37c 100644
--- a/ext2fs/ext2fs.h
+++ b/ext2fs/ext2fs.h
@@ -127,7 +127,7 @@ EXT2FS_EI int
test_bit (unsigned num, unsigned char *bitmap)
{
const uint32_t *const bw = (uint32_t *) bitmap + (num >> 5);
- const uint_fast32_t mask = 1 << (num & 31);
+ const uint_fast32_t mask = 1U << (num & 31);
return *bw & mask;
}
@@ -137,7 +137,7 @@ EXT2FS_EI int
set_bit (unsigned num, unsigned char *bitmap)
{
uint32_t *const bw = (uint32_t *) bitmap + (num >> 5);
- const uint_fast32_t mask = 1 << (num & 31);
+ const uint_fast32_t mask = 1U << (num & 31);
return (*bw & mask) ?: (*bw |= mask, 0);
}
@@ -147,7 +147,7 @@ EXT2FS_EI int
clear_bit (unsigned num, unsigned char *bitmap)
{
uint32_t *const bw = (uint32_t *) bitmap + (num >> 5);
- const uint_fast32_t mask = 1 << (num & 31);
+ const uint_fast32_t mask = 1U << (num & 31);
return (*bw & mask) ? (*bw &= ~mask, mask) : 0;
}
#endif /* Use extern inlines. */
diff --git a/libpager/data-return.c b/libpager/data-return.c
index 52661812..a69a2c5c 100644
--- a/libpager/data-return.c
+++ b/libpager/data-return.c
@@ -43,7 +43,7 @@ _pager_do_write_request (struct pager *p,
struct lock_list {struct lock_request *lr;
struct lock_list *next;} *lock_list, *ll;
int wakeup;
- int omitdata = 0;
+ unsigned omitdata = 0;
if (!p
|| p->port.class != _pager_class)
@@ -125,11 +125,11 @@ _pager_do_write_request (struct pager *p,
/* Mark these pages as being paged out. */
if (initializing)
{
- assert_backtrace (npages <= 32);
+ assert_backtrace (npages < 32);
for (i = 0; i < npages; i++)
{
if (pm_entries[i] & PM_INIT)
- omitdata |= 1 << i;
+ omitdata |= 1U << i;
else
pm_entries[i] |= PM_PAGINGOUT | PM_INIT;
}
@@ -162,7 +162,7 @@ _pager_do_write_request (struct pager *p,
but until the pager library interface is changed, this will have to do. */
for (i = 0; i < npages; i++)
- if (!(omitdata & (1 << i)))
+ if (!(omitdata & (1U << i)))
pagerrs[i] = pager_write_page (p->upi,
offset + (vm_page_size * i),
data + (vm_page_size * i));
@@ -175,7 +175,7 @@ _pager_do_write_request (struct pager *p,
wakeup = 0;
for (i = 0; i < npages; i++)
{
- if (omitdata & (1 << i))
+ if (omitdata & (1U << i))
{
notified[i] = 0;
continue;