diff options
author | Mark Kettenis <kettenis@gnu.org> | 2000-08-09 21:13:53 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2000-08-09 21:13:53 +0000 |
commit | b4cc956f8c24c462db7235cde475ca9623e760f2 (patch) | |
tree | ba4e9a986daf69a8a47ae68891cb6f6e1e944594 /pflocal/pf.c | |
parent | a6888a2b3a918920fe27133308c820e78dcecf16 (diff) | |
download | hurd-b4cc956f8c24c462db7235cde475ca9623e760f2.tar.gz hurd-b4cc956f8c24c462db7235cde475ca9623e760f2.tar.bz2 hurd-b4cc956f8c24c462db7235cde475ca9623e760f2.zip |
* pf.c (S_socket_create): Only accept S_IFCHR, S_IFSOCK and
S_IFIFO as `magic' protocols.
Diffstat (limited to 'pflocal/pf.c')
-rw-r--r-- | pflocal/pf.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/pflocal/pf.c b/pflocal/pf.c index 1244c600..d72e01b5 100644 --- a/pflocal/pf.c +++ b/pflocal/pf.c @@ -42,12 +42,19 @@ S_socket_create (mach_port_t pf, the file type of the socket. The primary application is to make sockets that pretend to be a FIFO, for the implementations of pipes. */ - if (protocol == 0) - mode = S_IFSOCK; - else if ((protocol & ~S_IFMT) == 0) - mode = protocol & S_IFMT; - else - return EPROTONOSUPPORT; + switch (protocol) + { + case 0: + mode = S_IFSOCK; + break; + case S_IFCHR: + case S_IFSOCK: + case S_IFIFO: + mode = protocol; + break; + default: + return EPROTONOSUPPORT; + } switch (sock_type) { |