Messages in this thread | | | From | Kees Cook <> | Date | Fri, 5 Apr 2019 09:13:24 -0700 | Subject | Re: [PATCH] overflow.h: Rename __ab_c_size() to __calc_size() |
| |
On Fri, Apr 5, 2019 at 1:24 AM Borislav Petkov <bp@alien8.de> wrote: > > On Fri, Apr 05, 2019 at 10:09:31AM +0200, Rasmus Villemoes wrote: > > On 05/04/2019 09.52, Borislav Petkov wrote: > > > On Fri, Apr 05, 2019 at 08:26:45AM +0200, Rasmus Villemoes wrote: > > > > >> It computes a*b+c with overflow checking at each step. calc_size > > >> is way too generic and doesn't say anything at all about how the > > >> calc(ulation) is done. > > > > > > Ok, whatever. > > > > > > Then it would need at least a comment above it to state what it does. I > > > don't want to go and parse the macros each time. > > > > It's an internal helper, and struct_size is fully kernel-doc'ed. But > > yeah, a comment wouldn't hurt, and let's rename the parameters so they > > match the abc naming. > > > > diff --git a/include/linux/overflow.h b/include/linux/overflow.h > > index 40b48e2133cb..6534a727cadb 100644 > > --- a/include/linux/overflow.h > > +++ b/include/linux/overflow.h > > @@ -278,11 +278,15 @@ static inline __must_check size_t > > array3_size(size_t a, size_t b, size_t c) > > return bytes; > > } > > > > -static inline __must_check size_t __ab_c_size(size_t n, size_t size, > > size_t c) > > +/* > > + * Compute a*b+c, returning SIZE_MAX on overflow. Internal helper for > > + * struct_size() below. > > + */
May as well make this kern-doc too?
> > +static inline __must_check size_t __ab_c_size(size_t a, size_t b, size_t c) > > { > > size_t bytes; > > > > - if (check_mul_overflow(n, size, &bytes)) > > + if (check_mul_overflow(a, b, &bytes)) > > return SIZE_MAX; > > if (check_add_overflow(bytes, c, &bytes)) > > return SIZE_MAX; > > > > > > Reported-by: Borislav Petkov <bp@suse.de> > Acked-by: Borislav Petkov <bp@suse.de>
Acked-by: Kees Cook <keescook@chromium.org>
-- Kees Cook
| |