Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2006-01-10 20:09:43 +0300
committerJeff Johnston <jjohnstn@redhat.com>2006-01-10 20:09:43 +0300
commitdea958bc0612f79a603e4a8a915c8beeafc464e1 (patch)
treefb7764130a9e1da8e25d0fe035e7999164f02102 /newlib/libc
parent216633f73cd9c8163b2b2fe5f6c00e8d819ade1f (diff)
2006-01-10 Eric Blake <ebb9@byu.net>
* libc/stdio/freopen.c (_freopen_r): Fix use of oflags. * libc/stdio64/freopen64.c (_freopen64_r): Likewise.
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/stdio/freopen.c7
-rw-r--r--newlib/libc/stdio64/freopen64.c7
2 files changed, 8 insertions, 6 deletions
diff --git a/newlib/libc/stdio/freopen.c b/newlib/libc/stdio/freopen.c
index ec195c819..d5582d421 100644
--- a/newlib/libc/stdio/freopen.c
+++ b/newlib/libc/stdio/freopen.c
@@ -146,14 +146,15 @@ _DEFUN(_freopen_r, (ptr, file, mode, fp),
else
{
#ifdef HAVE_FCNTL
+ int oldflags;
/*
* Reuse the file descriptor, but only if the access mode is
* unchanged. F_SETFL correctly ignores creation flags.
*/
f = fp->_file;
- if ((oflags = _fcntl_r (ptr, f, F_GETFL, 0)) == -1
- || ((oflags ^ flags) & O_ACCMODE) != 0
- || _fcntl_r (ptr, f, F_SETFL, flags) == -1)
+ if ((oldflags = _fcntl_r (ptr, f, F_GETFL, 0)) == -1
+ || ((oldflags ^ oflags) & O_ACCMODE) != 0
+ || _fcntl_r (ptr, f, F_SETFL, oflags) == -1)
f = -1;
#else
/* We cannot modify without fcntl support. */
diff --git a/newlib/libc/stdio64/freopen64.c b/newlib/libc/stdio64/freopen64.c
index 1f691f645..8acb957da 100644
--- a/newlib/libc/stdio64/freopen64.c
+++ b/newlib/libc/stdio64/freopen64.c
@@ -146,14 +146,15 @@ _DEFUN (_freopen64_r, (ptr, file, mode, fp),
else
{
#ifdef HAVE_FCNTL
+ int oldflags;
/*
* Reuse the file descriptor, but only if the access mode is
* unchanged. F_SETFL correctly ignores creation flags.
*/
f = fp->_file;
- if ((oflags = _fcntl_r (ptr, f, F_GETFL, 0)) == -1
- || ((oflags ^ flags) & O_ACCMODE) != 0
- || _fcntl_r (ptr, f, F_SETFL, flags) == -1)
+ if ((oldflags = _fcntl_r (ptr, f, F_GETFL, 0)) == -1
+ || ((oldflags ^ oflags) & O_ACCMODE) != 0
+ || _fcntl_r (ptr, f, F_SETFL, oflags) == -1)
f = -1;
#else
/* We cannot modify without fcntl support. */