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.