diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_clipboard.cc | 3 | ||||
-rw-r--r-- | winsup/cygwin/release/1.7.21 | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 1b2562bfa..7c2f442e5 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2013-06-17 Corinna Vinschen <corinna@vinschen.de> + * fhandler_clipboard.cc (fhandler_dev_clipboard::read): Fix buffer + read access overrun when pos > 0. + +2013-06-17 Corinna Vinschen <corinna@vinschen.de> + * times.cc (GetSystemTimePreciseAsFileTime): Add comment to declaration. (__to_clock_t): Remove a debug_printf. (times): Align syscall_printf to debug output of other system calls. 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 |