Index | Thread | Search

From:
Mike Larkin <mlarkin@nested.page>
Subject:
Re: vmd: simpler ifaliasreq sockaddr filling
To:
Klemens Nanni <kn@openbsd.org>
Cc:
OpenBSD tech <tech@openbsd.org>
Date:
Thu, 21 Nov 2024 13:14:03 -0800

Download raw body.

Thread
On Thu, Nov 21, 2024 at 06:49:37PM +0000, Klemens Nanni wrote:
> This is more than needed to fill the ioctl request struct's members,
> so I suggest a more idiomatic approach.
>
> Works for me.
>
> Feedback? OK?

sure

>
> Index: priv.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/vmd/priv.c,v
> diff -u -p -r1.26 priv.c
> --- priv.c	7 Oct 2024 04:29:01 -0000	1.26
> +++ priv.c	7 Oct 2024 04:31:10 -0000
> @@ -189,14 +189,10 @@ priv_dispatch_parent(int fd, struct priv
>  		/* Set the interface address */
>  		strlcpy(ifra.ifra_name, vfr.vfr_name, sizeof(ifra.ifra_name));
>
> -		ifra.ifra_addr.sa_len =
> -		    ifra.ifra_mask.sa_len =
> -		    sizeof(struct sockaddr_in);
> -
>  		memcpy(&ifra.ifra_addr, &vfr.vfr_addr,
> -		    ifra.ifra_addr.sa_len);
> +		    sizeof(ifra.ifra_addr));
>  		memcpy(&ifra.ifra_mask, &vfr.vfr_mask,
> -		    ifra.ifra_mask.sa_len);
> +		    sizeof(ifra.ifra_mask));
>
>  		if (ioctl(env->vmd_fd, SIOCAIFADDR, &ifra) == -1)
>  			log_warn("SIOCAIFADDR");
> @@ -212,14 +208,10 @@ priv_dispatch_parent(int fd, struct priv
>  		strlcpy(in6_ifra.ifra_name, vfr.vfr_name,
>  		    sizeof(in6_ifra.ifra_name));
>
> -		in6_ifra.ifra_addr.sin6_len =
> -		    in6_ifra.ifra_prefixmask.sin6_len =
> -		    sizeof(struct sockaddr_in6);
> -
>  		memcpy(&in6_ifra.ifra_addr, &vfr.vfr_addr,
> -		    in6_ifra.ifra_addr.sin6_len);
> +		    sizeof(in6_ifra.ifra_addr));
>  		memcpy(&in6_ifra.ifra_prefixmask, &vfr.vfr_mask,
> -		    in6_ifra.ifra_prefixmask.sin6_len);
> +		    sizeof(in6_ifra.ifra_prefixmask));
>  		in6_ifra.ifra_prefixmask.sin6_scope_id = 0;
>
>  		in6_ifra.ifra_lifetime.ia6t_vltime = ND6_INFINITE_LIFETIME;
>