Messages in this thread | | | Date | Mon, 10 Apr 2023 16:23:42 +0800 | Subject | Re: linux-6.3-rc6/lib/maple_tree.c: Two style issues | From | Peng Zhang <> |
| |
在 2023/4/10 15:05, David Binderman 写道: > Hello there, > > Static analyser cppcheck says: > > 1. > > linux-6.3-rc6/lib/maple_tree.c:1951:21: style: Array index 'split' is used before limits check. [arrayIndexThenCheck] > > Source code is > > while (((bn->pivot[split] - min) < slot_count - 1) && > (split < slot_count - 1) && (b_end - split > slot_min)) > > Suggest move limits check to before use.
Hi,
It should be fine here. The upper bound of split is b_end. The initial state (split = b_end / 2) must not cross the boundary, and (b_end - split > slot_min) ensures that it will not cross the boundary in the future.
> > 2. > > linux-6.3-rc6/lib/maple_tree.c:3289:11: warning: Size of pointer 'pivs' used instead of size of its data. [pointerSize] > > Source code is > > memset(pivs + tmp, 0, > sizeof(unsigned long *) * (max_p - tmp));
It's not good here, I can fix it.
Thanks.
> > but > > unsigned long *l_pivs, *pivs, gap; > > Pointers and long don't have to be the same size. Suggest code rework. > > Regards > > David Binderman >
| |