diff src/os/solaris/vm/os_solaris.cpp @ 8067:5cd2fac2ae70

6749267: Signal handler should save/restore errno Summary: Save errno before processing signal, then restore it. Reviewed-by: acorn, sspitsyn
author hseigel
date Tue, 19 Feb 2013 08:51:56 -0500
parents b5e3ec9c69fa
children 5fc51c1ecdeb 6b803ba47588 ca9580859cf4
line wrap: on
line diff
--- a/src/os/solaris/vm/os_solaris.cpp	Mon Feb 18 12:49:53 2013 +0100
+++ b/src/os/solaris/vm/os_solaris.cpp	Tue Feb 19 08:51:56 2013 -0500
@@ -4317,7 +4317,9 @@
 
 
 void signalHandler(int sig, siginfo_t* info, void* ucVoid) {
+  int orig_errno = errno;  // Preserve errno value over signal handler.
   JVM_handle_solaris_signal(sig, info, ucVoid, true);
+  errno = orig_errno;
 }
 
 /* Do not delete - if guarantee is ever removed,  a signal handler (even empty)