summaryrefslogtreecommitdiffstats
path: root/sys/compat/linux/linux_socket.c
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2009-05-02 10:51:40 +0000
committerdchagin <dchagin@FreeBSD.org>2009-05-02 10:51:40 +0000
commitf04150bca8c18c38f8cdd8cc5e33b058eab61b37 (patch)
treed6e3416b8cb5a3a0644d0c6133ed084ae61afc23 /sys/compat/linux/linux_socket.c
parent32b5830d97ce2de8a035a1090f087f2551568e07 (diff)
downloadFreeBSD-src-f04150bca8c18c38f8cdd8cc5e33b058eab61b37.zip
FreeBSD-src-f04150bca8c18c38f8cdd8cc5e33b058eab61b37.tar.gz
Linux socketpair() call expects explicit specified protocol for
AF_LOCAL domain unlike FreeBSD which expects 0 in this case. Approved by: kib (mentor) MFC after: 1 month
Diffstat (limited to 'sys/compat/linux/linux_socket.c')
-rw-r--r--sys/compat/linux/linux_socket.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_socket.c b/sys/compat/linux/linux_socket.c
index 56cc92e..c92fd12 100644
--- a/sys/compat/linux/linux_socket.c
+++ b/sys/compat/linux/linux_socket.c
@@ -859,7 +859,10 @@ linux_socketpair(struct thread *td, struct linux_socketpair_args *args)
return (EINVAL);
bsd_args.type = args->type;
- bsd_args.protocol = args->protocol;
+ if (bsd_args.domain == AF_LOCAL && args->protocol == PF_UNIX)
+ bsd_args.protocol = 0;
+ else
+ bsd_args.protocol = args->protocol;
bsd_args.rsv = (int *)PTRIN(args->rsv);
return (socketpair(td, &bsd_args));
}
OpenPOWER on IntegriCloud