acadia-newlib/winsup
Corinna Vinschen bb96bd03b0 Cygwin: fix buffer overrun in cygwin_strcasecmp
sys_mbstowcs is called with the destination buffer length
set to MaximumLength from the receiving UNICODE_STRING buffer.
This is twice as much as the actual size of the buffer in
wchar_t units, which is the unit expected by sys_mbstowcs.

sys_mbstowcs always attaches a NUL, within the destination
buffersize given.  But if the string is exactly one wchar_t
less than the actual buffer, and the buffersize is given too
large, sys_mbstowcs writes a NUL one wchar_t beyond the buffer.

This has only been exposed with Cygwin 3.1.5 because alloca
on newer gcc 9 apparently allocates more tightly.  The alloca
buffer here is requested with 16 bytes, which is exactly the
number of bytes required for the string L"cmd.exe".  Older gcc
apparently allocated a few more bytes on the stack, while gcc 9
allocates in 16 byte granularity...

Fix this by giving the correct destination buffer size to
sys_mbstowcs.

Fixes: https://cygwin.com/pipermail/cygwin/2020-June/245226.html
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-07-06 13:17:53 +02:00
..
CVSChangeLogs.old
cygserver Cygwin: fix GCC 8.3 'local external declaration' errors 2019-07-17 11:08:20 -04:00
cygwin Cygwin: fix buffer overrun in cygwin_strcasecmp 2020-07-06 13:17:53 +02:00
doc Cygwin: add new IPPROTO_TCP options to release notes 2020-07-01 21:33:15 +02:00
lsaauth
testsuite Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
utils Cygwin: utils: override definition of PMEM_EXTENDED_PARAMETER 2020-04-07 19:04:41 +02:00
CONTRIBUTORS Cygwin: Add David Macek to CONTRIBUTORS 2020-04-21 10:39:36 +02:00
COPYING
COPYING.LIB
CYGWIN_LICENSE
Makefile.common
Makefile.in
README
acinclude.m4
aclocal.m4
autogen.sh
c++wrap
ccwrap
config.guess
config.sub
configure
configure.ac
configure.cygwin
install-sh

README

THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESSED OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Cygwin documentation is available on the net at https://cygwin.com
You might especially be interested in

https://cygwin.com/faq/faq.html#faq.programming.building-cygwin