On Wed, Jul 03, 2024 at 11:31:11AM -0700, Andrii Nakryiko wrote:
> On Wed, Jul 3, 2024 at 1:10 AM Peter Zijlstra <pet...@infradead.org> wrote:
> >
> > On Tue, Jul 02, 2024 at 01:51:28PM -0700, Andrii Nakryiko wrote:
> > > > +static size_t ri_size(int sessions_cnt)
> > > > +{
> > > > +       struct return_instance *ri __maybe_unused;
> > > > +
> > > > +       return sizeof(*ri) + sessions_cnt * sizeof(ri->sessions[0]);
> > >
> > > just use struct_size()?
> >
> > Yeah, lets not. This is readable, struct_size() is not.
> 
> This hack with __maybe_unused is more readable than the standard
> struct_size() helper that was added specifically for cases like this,
> really?
> 
> I wonder if Kees agrees and whether there are any downsides to using
> struct_size()
> 
> struct_size(struct return_instance, sessions, sessions_cnt) seems
> readable enough to me, in any case.

Yes, please use struct_size_t(). This is exactly what it was designed for.

Though with only 2 instances of ri_size(), maybe just use struct_size()
directly?

Also, please annotate struct return_instance with __counted_by:

+       int                     sessions_cnt;
+       struct session_consumer sessions[] __counted_by(sessions_cnt);


-- 
Kees Cook

Reply via email to