diff options
| author | Xin LI <delphij@FreeBSD.org> | 2010-02-09 22:30:51 +0000 |
|---|---|---|
| committer | Xin LI <delphij@FreeBSD.org> | 2010-02-09 22:30:51 +0000 |
| commit | 5cb9c68cc97026748f7a0889fa07646b51f27541 (patch) | |
| tree | b0e7379f53d44bb1702fe8769f453e089f5fc10a /sys | |
| parent | 61d033d4365caf06b04c7937fec2585a4f04c0d3 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/compat/linux/linux_socket.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c index 396a71e84950..d94d9263f8ea 100644 --- a/sys/compat/linux/linux_socket.c +++ b/sys/compat/linux/linux_socket.c @@ -128,7 +128,7 @@ do_sa_get(struct sockaddr **sap, const struct osockaddr *osa, int *osalen, bdom = linux_to_bsd_domain(kosa->sa_family); if (bdom == -1) { - error = EINVAL; + error = EAFNOSUPPORT; goto out; } @@ -157,8 +157,13 @@ do_sa_get(struct sockaddr **sap, const struct osockaddr *osa, int *osalen, } } else #endif - if (bdom == AF_INET) + if (bdom == AF_INET) { alloclen = sizeof(struct sockaddr_in); + if (*osalen < alloclen) { + error = EINVAL; + goto out; + } + } sa = (struct sockaddr *) kosa; sa->sa_family = bdom; |
