fs/jfs/jfs_dtree.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
From: Arnd Bergmann <arnd@arndb.de>
The comparison of an __s8 value against DTPAGEMAXSLOT is still trivially
true, causing a harmless (default disabled) warning with clang:
fs/jfs/jfs_dtree.c:4419:25: error: result of comparison of constant 128 with expression of type 's8' (aka 'signed char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
4419 | p->header.freelist >= DTPAGEMAXSLOT)) {
| ~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
I previously worked around two of these in commit 7833570dae83 ("jfs: avoid
-Wtautological-constant-out-of-range-compare warning"), but now a new one has
come up, so address the same way by dropping the redundant range check.
Fixes: 119e448bb50a ("jfs: add dtpage integrity check to prevent index/pointer overflows")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
fs/jfs/jfs_dtree.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index 7669e268fe35..a32c78d1c416 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -4415,8 +4415,7 @@ bool check_dtpage(dtpage_t *p)
/* When there are free slots, freelist must be a valid slot index in
* 1~DTROOTMAXSLOT-1(since slot[0] is occupied by the header).
*/
- if (unlikely(p->header.freelist < 1 ||
- p->header.freelist >= DTPAGEMAXSLOT)) {
+ if (unlikely(p->header.freelist < 1)) {
jfs_err("Bad freelist:%d in dtpage\n", p->header.freelist);
return false;
}
--
2.39.5
On 3/16/26 9:42AM, Arnd Bergmann via Jfs-discussion wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The comparison of an __s8 value against DTPAGEMAXSLOT is still trivially
> true, causing a harmless (default disabled) warning with clang:
>
> fs/jfs/jfs_dtree.c:4419:25: error: result of comparison of constant 128 with expression of type 's8' (aka 'signed char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
> 4419 | p->header.freelist >= DTPAGEMAXSLOT)) {
> | ~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
>
> I previously worked around two of these in commit 7833570dae83 ("jfs: avoid
> -Wtautological-constant-out-of-range-compare warning"), but now a new one has
> come up, so address the same way by dropping the redundant range check.
Thanks. I'm going to remove the comment above it as well, since it
really isn't helpful.
>
> Fixes: 119e448bb50a ("jfs: add dtpage integrity check to prevent index/pointer overflows")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> fs/jfs/jfs_dtree.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
> index 7669e268fe35..a32c78d1c416 100644
> --- a/fs/jfs/jfs_dtree.c
> +++ b/fs/jfs/jfs_dtree.c
> @@ -4415,8 +4415,7 @@ bool check_dtpage(dtpage_t *p)
> /* When there are free slots, freelist must be a valid slot index in
> * 1~DTROOTMAXSLOT-1(since slot[0] is occupied by the header).
> */
> - if (unlikely(p->header.freelist < 1 ||
> - p->header.freelist >= DTPAGEMAXSLOT)) {
> + if (unlikely(p->header.freelist < 1)) {
> jfs_err("Bad freelist:%d in dtpage\n", p->header.freelist);
> return false;
> }
© 2016 - 2026 Red Hat, Inc.