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:
msaitoh 2022-11-07 08:32:35 +00:00
parent a0cae18fb0
commit a3d9e0f54e
1 changed files with 6 additions and 6 deletions

View File

@ -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.
*/
};
/*