[BZ #4359]
authorUlrich Drepper <drepper@redhat.com>
Sat, 13 Oct 2007 07:11:11 +0000 (07:11 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 13 Oct 2007 07:11:11 +0000 (07:11 +0000)
2007-10-13  Ulrich Drepper  <drepper@redhat.com>
[BZ #4359]
* libio/__freading.c (__freading): Don't return true for
write-only streams.

ChangeLog
libio/__freading.c

index 6b89367..3a16e6a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-13  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #4359]
+       * libio/__freading.c (__freading): Don't return true for
+       write-only streams.
+
 2007-10-12  Ulrich Drepper  <drepper@redhat.com>
 
        * locale/programs/repertoire.c (repertoire_read): Always free
index 37200bb..7eca27b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
 int
 __freading (FILE *fp)
 {
-  return ((fp->_flags & _IO_NO_WRITES)
-         || (fp->_flags & _IO_CURRENTLY_PUTTING) == 0);
+  return (((fp->_flags & _IO_NO_WRITES)
+          || (fp->_flags & _IO_CURRENTLY_PUTTING) == 0)
+         && (fp->_flags & _IO_NO_READS) == 0);
 }