diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2006-01-10 17:09:43 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2006-01-10 17:09:43 +0000 |
commit | dea958bc0612f79a603e4a8a915c8beeafc464e1 (patch) | |
tree | fb7764130a9e1da8e25d0fe035e7999164f02102 /newlib/libc/stdio/freopen.c | |
parent | 216633f73cd9c8163b2b2fe5f6c00e8d819ade1f (diff) | |
download | cygnal-dea958bc0612f79a603e4a8a915c8beeafc464e1.tar.gz cygnal-dea958bc0612f79a603e4a8a915c8beeafc464e1.tar.bz2 cygnal-dea958bc0612f79a603e4a8a915c8beeafc464e1.zip |
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/stdio/freopen.c')
-rw-r--r-- | newlib/libc/stdio/freopen.c | 7 |
1 files changed, 4 insertions, 3 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. */ |