[jjohnstn@cygnus.com: Re: A patch from the net]

Fifer, Eric EFifer@sanwaint.com
Fri Feb 25 09:05:00 GMT 2000


Thanks for fowarding the stdout problem.

Also, the end of last month I sent in a different newlib problem,
but never got any kind of acknowledgement.  I'll attach the old
email, just in case the issue fell through the cracks ...

Eric

--

Sent: Monday, January 31, 2000 3:44 PM
To: cygwin-developers@sourceware.cygnus.com
Subject: fopen looking past end of mode string

When fopen is checking its mode flags, it can look past
the end of the string.  This patch checks that mode[1] is
not a terminator before looking ahead to mode[2].

Eric Fifer

--- newlib/libc/stdio/flags.c-  Thu Oct 14 18:37:59 1999
+++ newlib/libc/stdio/flags.c   Mon Jan 31 14:33:53 2000
@@ -61,19 +61,19 @@
       ptr->_errno = EINVAL;
       return (0);
     }
-  if (mode[1] == '+' || mode[2] == '+')
+  if (mode[1] && (mode[1] == '+' || mode[2] == '+'))
     {
       ret = __SRW;
       m = O_RDWR;
     }
-  if (mode[1] == 'b' || mode[2] == 'b')
+  if (mode[1] && (mode[1] == 'b' || mode[2] == 'b'))
     {
 #ifdef O_BINARY
       m |= O_BINARY;
 #endif
     }
 #ifdef __CYGWIN__
-  else if (mode[1] == 't' || mode[2] == 't')
+  else if (mode[1] && (mode[1] == 't' || mode[2] == 't'))
 #else
   else
 #endif


More information about the Cygwin-developers mailing list