From fc1d1acd518a9937c2501242dae2af4530b52fe7 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 19 May 2020 08:57:31 +0200 Subject: Avoid UB when calling setjmp The C standard (and thus by reference also the C++ standard) has very picky constraints how invocations of the setjmp macro need to appear to not cause undefined behavior. Change-Id: I09418de340a044e4309261bae9816ca746700858 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94474 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'jvmfwk') diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx index 7fcd60891263..abe47b567832 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx @@ -213,11 +213,10 @@ int createJvm( g_bInGetJavaVM = 1; jint err; memset( jmp_jvm_abort, 0, sizeof(jmp_jvm_abort)); - int jmpval= setjmp( jmp_jvm_abort ); - /* If jmpval is not "0" then this point was reached by a longjmp in the + /* If the setjmp return value is not "0" then this point was reached by a longjmp in the abort_handler, which was called indirectly by JNI_CreateVM. */ - if( jmpval == 0) + if( setjmp( jmp_jvm_abort ) == 0) { //returns negative number on failure err= pCreateJavaVM(pJavaVM, ppEnv, vm_args); -- cgit