Increase sdl_data so that more then IFNAMSIZ bytes are available (again).
COMPAT_9 is not required. - The getifaddrs(3) function 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. There is no any kernel data structure which has struct sockaddr_dl foobadr[xxx] array. - A data passed from userland and a kernel data are compared with sockaddr_cmp(). The return value is used to check if the size is inadequate or not. - In the kernel, sdl_len is not directly used for the length of memcpy() but the sockaddr_dl_measure() is used for it.
This commit is contained in:
parent
a0cae18fb0
commit
a3d9e0f54e
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: if_dl.h,v 1.30 2022/10/27 00:25:11 msaitoh Exp $ */
|
||||
/* $NetBSD: if_dl.h,v 1.31 2022/11/07 08:32:35 msaitoh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1990, 1993
|
||||
|
@ -68,11 +68,11 @@ struct dl_addr {
|
|||
uint8_t dl_nlen; /* interface name length, no trailing 0 reqd. */
|
||||
uint8_t dl_alen; /* link level address length */
|
||||
uint8_t dl_slen; /* link layer selector length */
|
||||
/*
|
||||
* minimum work area, can be larger; contains both if name
|
||||
* and ll address
|
||||
*/
|
||||
char dl_data[12];
|
||||
char dl_data[24]; /*
|
||||
* minimum work area, can be larger; contains
|
||||
* both if name and ll address; big enough for
|
||||
* IFNAMSIZ plus 8byte ll addr.
|
||||
*/
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue