In message <20100810.115457.1126759349893144516....@bsdimp.com>, "M. Warner Los h" writes: >In message: <20100811.023235.13138059....@allbsd.org> > Hiroki Sato <h...@freebsd.org> writes: >: Oliver Fromme <o...@fromme.com> wrote >: in <201008101623.o7agns7i042...@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 p...@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. _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"