Messages in this thread | | | Date | Tue, 17 May 2022 17:56:04 -0700 | From | Kees Cook <> | Subject | Re: [PATCH v2 0/2] bitmap: Fix return values to be unsigned |
| |
On May 17, 2022 3:21:00 PM PDT, Yury Norov <yury.norov@gmail.com> wrote: >On Tue, May 17, 2022 at 02:22:32PM -0700, Kees Cook wrote: >> Hi, >> >> As mentioned in the last patch: >> >> Both nodemask and bitmap routines had mixed return values that provided >> potentially signed results that could never happen. This was leading to >> the compiler getting confusing about the range of possible return values >> (it was thinking things could be negative where they could not be). Fix >> all the nodemask and bitmap routines that should be returning unsigned >> (or bool) values. Silences GCC 12 warnings: >> >> mm/swapfile.c: In function ‘setup_swap_info’: >> mm/swapfile.c:2291:47: error: array subscript -1 is below array bounds of ‘struct plist_node[]’ [-Werror=array-bounds] >> 2291 | p->avail_lists[i].prio = 1; >> | ~~~~~~~~~~~~~~^~~ >> In file included from mm/swapfile.c:16: >> ./include/linux/swap.h:292:27: note: while referencing ‘avail_lists’ >> 292 | struct plist_node avail_lists[]; /* >> | ^~~~~~~~~~~ >> >> This splits up the patch into the bitmap and nodemask halves, and drops >> a needless change to the random node helper. >> >> I note that Alexey and Rasmus touched on this area in the past, fixing >> up node ids to be unsigned: >> >> ce0725f78a56 ("numa: make "nr_online_nodes" unsigned int") >> b9726c26dc21 ("numa: make "nr_node_ids" unsigned int") >> 33c4fa8c6763 ("linux/nodemask.h: update bitmap wrappers to take unsigned int") >> >> If anyone else would like to carry this, please let me know. I'm happy >> to carry it in my tree. > >I think it should go thru my tree, if no objections.
Sure thing! Thanks for the review. I'll send a v3 with the variable updated and tools/ refreshed.
-Kees
-- Kees Cook
| |