OpenGroup mentions EINVAL in connect(2) and FreeBSD appears to enforce this requirement, but it's not mentioned in the manpage. From the OpenGroup website: [EINVAL] The address_len argument is not a valid length for the address family; or invalid address family in the sockaddr structure.
A commit references this bug: Author: pluknet Date: Thu Jun 26 10:21:01 UTC 2014 New revision: 267909 URL: http://svnweb.freebsd.org/changeset/base/267909 Log: Document EINVAL as per POSIX. This also follows r124335-r124336, r225827. PR: 191382 MFC after: 1 week Sponsored by: Nginx, Inc. Changes: head/lib/libc/sys/bind.2 head/lib/libc/sys/connect.2
I excluded "invalid address family in the sockaddr structure" in connect(2), because I could not find the relevant parts in kernel.
A commit references this bug: Author: pluknet Date: Thu Jul 3 17:35:02 UTC 2014 New revision: 268223 URL: http://svnweb.freebsd.org/changeset/base/268223 Log: MFC r267909: Document EINVAL. PR: 191382 Changes: _U stable/10/ stable/10/lib/libc/sys/bind.2 stable/10/lib/libc/sys/connect.2
A commit references this bug: Author: pluknet Date: Thu Jul 3 17:37:51 UTC 2014 New revision: 268225 URL: http://svnweb.freebsd.org/changeset/base/268225 Log: MFC r267909: Document EINVAL. PR: 191382 Changes: _U stable/9/lib/libc/ _U stable/9/lib/libc/sys/ stable/9/lib/libc/sys/bind.2 stable/9/lib/libc/sys/connect.2