[PATCH 01/34] maple_tree: Fix static analyser cppcheck issue

Liam R. Howlett posted 34 patches 2 years, 9 months ago
There is a newer version of this series
[PATCH 01/34] maple_tree: Fix static analyser cppcheck issue
Posted by Liam R. Howlett 2 years, 9 months ago
Static analyser of the maple tree code noticed that the split variable
is being used to dereference into an array prior to checking the
variable itself.  Fix this issue by changing the order of the statement
to check the variable first.

Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
---
 lib/maple_tree.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index 110a36479dced..9cf4fca42310c 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -1943,8 +1943,9 @@ static inline int mab_calc_split(struct ma_state *mas,
 		 * causes one node to be deficient.
 		 * NOTE: mt_min_slots is 1 based, b_end and split are zero.
 		 */
-		while (((bn->pivot[split] - min) < slot_count - 1) &&
-		       (split < slot_count - 1) && (b_end - split > slot_min))
+		while ((split < slot_count - 1) &&
+		       ((bn->pivot[split] - min) < slot_count - 1) &&
+		       (b_end - split > slot_min))
 			split++;
 	}
 
-- 
2.39.2
Re: [PATCH 01/34] maple_tree: Fix static analyser cppcheck issue
Posted by Peng Zhang 2 years, 9 months ago
在 2023/4/25 22:09, Liam R. Howlett 写道:
> Static analyser of the maple tree code noticed that the split variable
> is being used to dereference into an array prior to checking the
> variable itself.  Fix this issue by changing the order of the statement
> to check the variable first.
>
> Reported-by: David Binderman <dcb314@hotmail.com>
> Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>

Reviewed-by: Peng Zhang<zhangpeng.00@bytedance.com>

> ---
>   lib/maple_tree.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lib/maple_tree.c b/lib/maple_tree.c
> index 110a36479dced..9cf4fca42310c 100644
> --- a/lib/maple_tree.c
> +++ b/lib/maple_tree.c
> @@ -1943,8 +1943,9 @@ static inline int mab_calc_split(struct ma_state *mas,
>   		 * causes one node to be deficient.
>   		 * NOTE: mt_min_slots is 1 based, b_end and split are zero.
>   		 */
> -		while (((bn->pivot[split] - min) < slot_count - 1) &&
> -		       (split < slot_count - 1) && (b_end - split > slot_min))
> +		while ((split < slot_count - 1) &&
> +		       ((bn->pivot[split] - min) < slot_count - 1) &&
> +		       (b_end - split > slot_min))
>   			split++;
>   	}
>