svn commit: r211023 - head/usr.sbin/syslogd
Poul-Henning Kamp
phk at phk.freebsd.dk
Tue Aug 10 18:33:49 UTC 2010
In message <20100810.115457.1126759349893144516.imp at bsdimp.com>, "M. Warner Los
h" writes:
>In message: <20100811.023235.13138059.hrs at allbsd.org>
> Hiroki Sato <hrs at FreeBSD.org> writes:
>: Oliver Fromme <olli at fromme.com> wrote
>: in <201008101623.o7AGNs7I042679 at haluter.fromme.com>:
>:
>: ol> -static int validate(struct sockaddr *, const char *);
>: ol> -static void unmapped(struct sockaddr *);
>: ol> +static int validate(struct sockaddr_storage *, const char *);
>: ol> +static void unmapped(struct sockaddr_storage *);
>:
>: Why is s/struct sockaddr */struct sockaddr_storage */ needed here?
>: Using (struct sockaddr *) as an argument looks reasonable to me since
>: the struct sockaddr_storage is mostly for memory allocation, not for
>: access via pointer.
>
>Because struct sockaddr * has a too loose alignment requirement for
>later casting, while sockaddr_storage has the proper alignment.
This is the kind of detail Bruce, Warner and I know, but I bet it
was news to most of you.
Somebody should add it to the relevant manualpages...
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the svn-src-all
mailing list