You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/02/07 10:17:25 UTC

svn commit: r1781984 - in /tomcat/native/trunk/native: include/tcn_api.h os/win32/system.c src/jnilib.c

Author: markt
Date: Tue Feb  7 10:17:25 2017
New Revision: 1781984

URL: http://svn.apache.org/viewvc?rev=1781984&view=rev
Log:
Further follow-up to r1781943
Fix crash on JVM shutdown (caused by global pool npe)

Modified:
    tomcat/native/trunk/native/include/tcn_api.h
    tomcat/native/trunk/native/os/win32/system.c
    tomcat/native/trunk/native/src/jnilib.c

Modified: tomcat/native/trunk/native/include/tcn_api.h
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/include/tcn_api.h?rev=1781984&r1=1781983&r2=1781984&view=diff
==============================================================================
--- tomcat/native/trunk/native/include/tcn_api.h (original)
+++ tomcat/native/trunk/native/include/tcn_api.h Tue Feb  7 10:17:25 2017
@@ -36,10 +36,14 @@
  * Tomcat Native Public API
  */
 
-/* Return global apr pool
+/* Return global apr pool, creating it if necessary
  */
 apr_pool_t *tcn_get_global_pool(void);
 
+/* Return global apr pool, optionally creating it if necessary
+ */
+apr_pool_t *tcn_get_global_pool_int(int);
+
 /* Return global String class
  */
 jclass tcn_get_string_class(void);

Modified: tomcat/native/trunk/native/os/win32/system.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/os/win32/system.c?rev=1781984&r1=1781983&r2=1781984&view=diff
==============================================================================
--- tomcat/native/trunk/native/os/win32/system.c (original)
+++ tomcat/native/trunk/native/os/win32/system.c Tue Feb  7 10:17:25 2017
@@ -102,7 +102,9 @@ DllMain(
          */
         case DLL_THREAD_DETACH:
 #ifdef HAVE_OPENSSL
-            SSL_thread_exit();
+            if (tcn_get_global_pool_int(0)) {
+                SSL_thread_exit();
+            }
 #endif
             break;
 

Modified: tomcat/native/trunk/native/src/jnilib.c
URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/jnilib.c?rev=1781984&r1=1781983&r2=1781984&view=diff
==============================================================================
--- tomcat/native/trunk/native/src/jnilib.c (original)
+++ tomcat/native/trunk/native/src/jnilib.c Tue Feb  7 10:17:25 2017
@@ -454,7 +454,12 @@ TCN_IMPLEMENT_CALL(jint, Library, size)(
 
 apr_pool_t *tcn_get_global_pool()
 {
-    if (!tcn_global_pool) {
+    return tcn_get_global_pool_int(1);
+}
+
+apr_pool_t *tcn_get_global_pool_int(int create)
+{
+    if (!tcn_global_pool && create) {
         if (apr_pool_create(&tcn_global_pool, NULL) != APR_SUCCESS) {
             return NULL;
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org