]> sourceware.org Git - glibc.git/commitdiff
Use al possible bytes from fopen mode string.
authorEric Blake <eblake@redhat.com>
Sat, 23 Apr 2011 03:40:57 +0000 (23:40 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 23 Apr 2011 03:40:57 +0000 (23:40 -0400)
ChangeLog
NEWS
libio/fileops.c

index fe486f8cb4442aaef5715133e3cb13e2bb5a1bfd..2b02e1af70cd0ffc6f1d901ee86d2b9f001c55db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-04-22  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12685]
+       * libio/fileops.c (_IO_new_file_fopen): Scan up to 7 bytes of the
+       mode string.
+       Patch by Eric Blake <eblake@redhat.com>.
+
 2011-04-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        * sunrpc/Makefile (need-export-routines): Add svc_run.
diff --git a/NEWS b/NEWS
index f8e1685cd1d4c53994858929b21e94c9e647e865..373d2493eb9e72b908d09790b3e8516a4bde97ff 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2011-4-17
+GNU C Library NEWS -- history of user-visible changes.  2011-4-22
 Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -19,7 +19,7 @@ Version 2.14
 * The following bugs are resolved with this release:
 
   11724, 12420, 12445, 12454, 12460, 12469, 12489, 12509, 12510, 12518, 12583,
-  12587, 12597, 12631, 12650, 12653, 12655
+  12587, 12597, 12631, 12650, 12653, 12655, 12685
 \f
 Version 2.13
 
index eba2768cc72a7b0649a62e74bab7d95c54029869..ea730ac95ab70abe791294b284bb5fb8b2b22563 100644 (file)
@@ -290,7 +290,7 @@ _IO_new_file_fopen (fp, filename, mode, is32not64)
 #ifdef _LIBC
   last_recognized = mode;
 #endif
-  for (i = 1; i < 6; ++i)
+  for (i = 1; i < 7; ++i)
     {
       switch (*++mode)
        {
@@ -997,18 +997,18 @@ _IO_new_file_seekoff (fp, offset, dir, mode)
       /* Adjust for read-ahead (bytes is buffer). */
       offset -= fp->_IO_read_end - fp->_IO_read_ptr;
       if (fp->_offset == _IO_pos_BAD)
-        {
-          if (mode != 0)
-            goto dumb;
-          else
-            {
-              result = _IO_SYSSEEK (fp, 0, dir);
-              if (result == EOF)
-                return result;
-
-              fp->_offset = result;
-            }
-        }
+       {
+         if (mode != 0)
+           goto dumb;
+         else
+           {
+             result = _IO_SYSSEEK (fp, 0, dir);
+             if (result == EOF)
+               return result;
+
+             fp->_offset = result;
+           }
+       }
       /* Make offset absolute, assuming current pointer is file_ptr(). */
       offset += fp->_offset;
       if (offset < 0)
@@ -1270,7 +1270,7 @@ _IO_new_file_write (f, data, n)
        {
          f->_flags |= _IO_ERR_SEEN;
          break;
-        }
+       }
       to_do -= count;
       data = (void *) ((char *) data + count);
     }
@@ -1358,12 +1358,12 @@ _IO_new_file_xsputn (f, data, n)
       do_write = to_do - (block_size >= 128 ? to_do % block_size : 0);
 
       if (do_write)
-        {
+       {
          count = new_do_write (f, s, do_write);
          to_do -= count;
          if (count < do_write)
            return n - to_do;
-        }
+       }
 
       /* Now write out the remainder.  Normally, this will fit in the
         buffer, but it's somewhat messier for line-buffered files,
This page took 0.058024 seconds and 5 git commands to generate.