diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 1b2562bfa..7c2f442e5 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2013-06-17 Corinna Vinschen + + * fhandler_clipboard.cc (fhandler_dev_clipboard::read): Fix buffer + read access overrun when pos > 0. + 2013-06-17 Corinna Vinschen * times.cc (GetSystemTimePreciseAsFileTime): Add comment to declaration. diff --git a/winsup/cygwin/fhandler_clipboard.cc b/winsup/cygwin/fhandler_clipboard.cc index 1118137c1..db72b9787 100644 --- a/winsup/cygwin/fhandler_clipboard.cc +++ b/winsup/cygwin/fhandler_clipboard.cc @@ -295,7 +295,8 @@ fhandler_dev_clipboard::read (void *ptr, size_t& len) != (size_t) -1 && (ret > conv_len /* Skip separated high surrogate: */ - || ((buf [pos + glen - 1] & 0xFC00) == 0xD800 && glen - pos > 1))) + || ((buf [glen - 1] & 0xFC00) == 0xD800 + && glen - pos > 1))) --glen; if (ret == (size_t) -1) ret = 0; diff --git a/winsup/cygwin/release/1.7.21 b/winsup/cygwin/release/1.7.21 index 0eb3de3a4..2ea267778 100644 --- a/winsup/cygwin/release/1.7.21 +++ b/winsup/cygwin/release/1.7.21 @@ -8,3 +8,6 @@ Bug fixes: - Fix long-standing problem which allows to access files via ".." using an invalid POSIX path, for instance, `cd nonexistant/../existing_dir". Fixes: http://cygwin.com/ml/cygwin/2013-05/msg00222.html + +- Fix EFAULT when reading large clipboard. + Fixes: http://cygwin.com/ml/cygwin/2013-06/msg00311.html