From e626ae249e4eb9d90a8b12ce373df3efb0b20355 Mon Sep 17 00:00:00 2001 From: green Date: Wed, 4 Jan 2006 22:21:51 +0000 Subject: [PATCH] Branch: b_release_1_4_6 b=9780 Better version proposed by Lee. --- libsysio/src/open.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libsysio/src/open.c b/libsysio/src/open.c index 132ce39..11516cb 100644 --- a/libsysio/src/open.c +++ b/libsysio/src/open.c @@ -112,6 +112,10 @@ _sysio_open(struct pnode *pno, int flags, mode_t mode) err = -EEXIST; else if (!ino) err = _sysio_p_validate(pno, NULL, NULL); +#ifdef O_NOFOLLOW + else if (flags & O_NOFOLLOW) + err = -ELOOP; +#endif else { /* * Simple open of pre-existing file. @@ -181,14 +185,6 @@ SYSIO_INTERFACE_NAME(open)(const char *path, int flags, ...) /* * Ask for the open/creat. */ - -#ifdef O_NOFOLLOW - if (pno && pno->p_base->pb_ino && (flags & O_NOFOLLOW) && - S_ISLNK(pno->p_base->pb_ino->i_stbuf.st_mode)) { - rtn = -ELOOP; - goto error; - } -#endif rtn = _sysio_open(pno, flags, mode); if (rtn) goto error; -- 1.8.3.1