Messages in this thread Patch in this message | | | Subject | Re: [PATCH] overflow.h: Rename __ab_c_size() to __calc_size() | From | Rasmus Villemoes <> | Date | Fri, 5 Apr 2019 10:09:31 +0200 |
| |
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. + */ +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;
Rasmus
| |