On 2022/10/25 14:55, Masanobu SAITOH wrote: > > > On 2022/10/25 14:51, matthew green wrote: >> "SAITOH Masanobu" writes: >>> Module Name: src >>> Committed By: msaitoh >>> Date: Mon Oct 24 07:45:44 UTC 2022 >>> >>> Modified Files: >>> src/sys/net: if_dl.h >>> >>> Log Message: >>> Increase sdl_data so that more then IFNAMSIZ bytes are available. >>> >>> - Increase the size of dl_data[] from 12 to 24. >>> - Same as OpenBSD. >> >> isn't this a binary compat issue? eg, 'struct sockaddr_dl' changes, >> and that, and things based upon it, are in user interfaces. i had >> a look and i believe it's a problem, but maybe i missed something. >> >> thanks. >> >> >> .mrg. > > struct dl_addr is at the end of struct sockaddr_dl. > dl_data is at the end of struct dl_addr. > So I think it's has no problem for old binaries.
I've roughly tested with old arp, ndp, ifconfig, ifmcstat and all /usr/tests on a new kernel and I didn't saw any problem. I think getifaddrs(3) has no problem. The routing message has no problem because struct rtm_msglen has rtm_msglen and we can get the next message using with it. I can't see any kernel data structure which has struct sockaddr_dl foobadr[xxx] array. One problem might be exist. An old userland program allocate buffer with sizeof(struct sockaddr_dl), the size is smaller than the newer. The old program might copy with memcpy(old_sized_buf, newdata, dla->sdl_len). Should I backout the change until the COMPAT code is written? -- ----------------------------------------------- SAITOH Masanobu (msai...@execsw.org msai...@netbsd.org)