Fix SOCK_CLOEXEC with socket() and socketpair()

Remove SOCK_CLOEXEC flag to get a valid socket type, e.g. to avoid a
EPROTOTYPE in case of socket(..., SOCK_DGRAM | SOCK_CLOEXEC, ...).
This commit is contained in:
Sebastian Huber 2017-03-14 07:15:34 +01:00
parent 5f3722a8d9
commit 0732183638

View File

@ -176,12 +176,10 @@ sys_socket(struct thread *td, struct socket_args *uap)
type = uap->type;
oflag = 0;
fflag = 0;
#ifndef __rtems__
if ((type & SOCK_CLOEXEC) != 0) {
type &= ~SOCK_CLOEXEC;
oflag |= O_CLOEXEC;
}
#endif /* __rtems__ */
if ((type & SOCK_NONBLOCK) != 0) {
type &= ~SOCK_NONBLOCK;
fflag |= FNONBLOCK;
@ -775,12 +773,10 @@ kern_socketpair(struct thread *td, int domain, int type, int protocol,
oflag = 0;
fflag = 0;
#ifndef __rtems__
if ((type & SOCK_CLOEXEC) != 0) {
type &= ~SOCK_CLOEXEC;
oflag |= O_CLOEXEC;
}
#endif /* __rtems__ */
if ((type & SOCK_NONBLOCK) != 0) {
type &= ~SOCK_NONBLOCK;
fflag |= FNONBLOCK;