> On Sep 19, 2025, at 3:42 AM, Paul Vixie <p...@redbarn.org> wrote:
>
> On Donderdag 18 September 2025 14:29:36 UTC Zhenlei Huang wrote:
> > > On Sep 18, 2025, at 7:17 PM, Nakayama Kenjiro <nakayamakenj...@gmail.com>
> > > ...
> > > freebsd/sys/netinet/in_mcast.c:749:10: error: allocation of insufficient
> > > size '40' for type 'struct ip_msource' with size '48'
> > > ...
> > The following lines has this
> > ```
> > lims = (struct in_msource *)nims;
> > ```
> >
> > So probably assign the alloced memory directly to lims would make Clang
> > happy, say ```
> > lims = malloc(sizeof( .... ;
> > nims = (struct ip_mfilter *)lims;
> > ```
> >
> > You can have a try with that. Good luck with you !
>
> ideally, clang will eventually get around to complaining about that type cast
> on the same basis (destination points to a longer object than the source.) is
> there a reason we're not using a union{} for this data?
I've no idea why not using a union, probably because it wastes a little memory
? In C world, basically it is the developer's duty to ensure no out of bounds
memory access.
I'm not sure how many type casts like this will make Clang unhappy, but I think
the first step would be turning the warning on but not fail the build, so that
it is easy to do statistic and then plan what to do next.
>
> --
> Paul Vixie
Best regards,
Zhenlei