Skip to content

Commit 8ed5878

Browse files
author
Kent Overstreet
committed
bcachefs: Fix undefined behaviour in eytzinger1_first()
Signed-off-by: Kent Overstreet <[email protected]>
1 parent 86d81ec commit 8ed5878

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

fs/bcachefs/eytzinger.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ static inline unsigned eytzinger1_right_child(unsigned i)
4848

4949
static inline unsigned eytzinger1_first(unsigned size)
5050
{
51-
return rounddown_pow_of_two(size);
51+
return size ? rounddown_pow_of_two(size) : 0;
5252
}
5353

5454
static inline unsigned eytzinger1_last(unsigned size)
@@ -101,7 +101,9 @@ static inline unsigned eytzinger1_prev(unsigned i, unsigned size)
101101

102102
static inline unsigned eytzinger1_extra(unsigned size)
103103
{
104-
return (size + 1 - rounddown_pow_of_two(size)) << 1;
104+
return size
105+
? (size + 1 - rounddown_pow_of_two(size)) << 1
106+
: 0;
105107
}
106108

107109
static inline unsigned __eytzinger1_to_inorder(unsigned i, unsigned size,

0 commit comments

Comments
 (0)