Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2009-07-23 06:47:17 +0400
committerEric Blake <eblake@redhat.com>2009-07-23 06:47:17 +0400
commit3f6f9155c9385702dce1d4011759d1ff4aa602fd (patch)
tree0a98c67a64b4018facfb37c7f34777148d3d6d78 /winsup
parentd974d420d494228ea759e08013805888c5f13ac0 (diff)
* exceptions.cc (handle_exceptions): Set si_addr according to
POSIX for SIGSEGV.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog17
-rw-r--r--winsup/cygwin/exceptions.cc4
2 files changed, 14 insertions, 7 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index f4c75a307..399804502 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-22 Eric Blake <ebb9@byu.net>
+
+ * exceptions.cc (handle_exceptions): Set si_addr according to
+ POSIX for SIGSEGV.
+
2009-07-22 Corinna Vinschen <corinna@vinschen.de>
* mount.cc (fs_info::update): Open filesystem with access set to 0.
@@ -43,7 +48,7 @@
for MVFS. Explain why.
(fhandler_disk_file::utimens): Drop local variables lastaccess and
lastwrite. Copy timestamps right into FILE_BASIC_INFORMATION structure
- to avoid copying them twice.
+ to avoid copying them twice.
2009-07-20 Corinna Vinschen <corinna@vinschen.de>
@@ -189,7 +194,7 @@
* ntdll.h (PROCESSINFOCLASS): Remove unneeded trailing comma.
* pinfo.cc (_pinfo::dup_proc_pipe): Remove unneeded assignment.
-
+
* sigproc.cc (sig_send): Don't send signal to myself if this is an exec
stub.
@@ -712,7 +717,7 @@
* fhandler_clipboard.cc: Avoid calling system_printf.
(set_clipboard): Add basic error checking. Set errno here. Per MSDN,
- don't call GlobalFree on data block transferred to clipboard.
+ don't call GlobalFree on data block transferred to clipboard.
(fhandler_dev_clipboard::write): Drop setting errno after call to
set_clipboard.
(fhandler_dev_clipboard::read): Add basic error checking. Simplify code.
@@ -989,7 +994,7 @@
* flock.cc (lf_setlock): Handle border case which results in WFMO loop
exiting with ret == WAIT_TIMEOUT gracefully. Add a system_printf to
- uncover other potential problems with WFMO loop.
+ uncover other potential problems with WFMO loop.
2009-04-18 Christopher Faylor <me+cygwin@cgf.cx>
@@ -1033,7 +1038,7 @@
2009-04-15 Corinna Vinschen <corinna@vinschen.de>
* path.cc (path_conv::get_wide_win32_path): Allow relative paths.
- (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative
+ (cygwin_conv_path): In case of CCP_POSIX_TO_WIN_W, convert relative
paths to absolute paths if the relative pathname length exceeds
MAX_PATH.
@@ -1312,7 +1317,7 @@
* path.cc (symlink_worker): Write target filename as UTF-16 string
with leading BOM marker.
- (symlink_info::check_shortcut): If check for leading BOM marker
+ (symlink_info::check_shortcut): If check for leading BOM marker
succeeds, read filename as UTF-16 string.
(symlink_info::check_sysfile): Ditto.
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 76632854b..df0248947 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -686,7 +686,9 @@ _cygtls::handle_exceptions (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT
me.signal_exit (0x80 | si.si_signo); // Flag signal + core dump
}
- si.si_addr = (void *) in->Eip;
+ si.si_addr = (si.si_signo == SIGSEGV || si.si_signo == SIGBUS
+ ? (void *) e->ExceptionInformation[1]
+ : (void *) in->Eip);
si.si_errno = si.si_pid = si.si_uid = 0;
me.incyg++;
sig_send (NULL, si, &me); // Signal myself