| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-developers-subscribe AT sourceware DOT cygnus DOT com> |
| List-Archive: | <http://sourceware.cygnus.com/ml/cygwin-developers/> |
| List-Post: | <mailto:cygwin-developers AT sourceware DOT cygnus DOT com> |
| List-Help: | <mailto:cygwin-developers-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs> |
| Sender: | cygwin-developers-owner AT sourceware DOT cygnus DOT com |
| Delivered-To: | mailing list cygwin-developers AT sourceware DOT cygnus DOT com |
| Message-ID: | <779F20BCCE5AD31186A50008C75D99791716CE@SILLDN_MAIL1> |
| From: | "Fifer, Eric" <EFifer AT sanwaint DOT com> |
| To: | cygwin-developers AT sourceware DOT cygnus DOT com |
| Subject: | fopen looking past end of mode string |
| Date: | Mon, 31 Jan 2000 15:43:49 -0000 |
| MIME-Version: | 1.0 |
| X-Mailer: | Internet Mail Service (5.5.2448.0) |
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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |