Hi Matthew, On Sat, Oct 16, 2021 at 05:18:24PM +0100, Matthew Wilcox wrote: > On Sat, Oct 16, 2021 at 05:28:28PM +0200, Len Baker wrote: > > +static size_t new_dir_size(size_t namelen) > > +{ > > + size_t bytes; > > + > > + if (check_add_overflow(sizeof(struct ctl_dir), sizeof(struct ctl_node), > > + &bytes)) > > + return SIZE_MAX; > > + if (check_add_overflow(bytes, array_size(sizeof(struct ctl_table), 2), > > + &bytes)) > > + return SIZE_MAX; > > + if (check_add_overflow(bytes, namelen, &bytes)) > > + return SIZE_MAX; > > + if (check_add_overflow(bytes, (size_t)1, &bytes)) > > + return SIZE_MAX; > > + > > + return bytes; > > +} > > I think this is overkill. All these structs are small and namelen is > supplied by the kernel, not specified by userspace. It really complicates > the code, and I don't see the advantage. > Ok, understood. I will send a v2 without this function. Thanks for the review, Len