RFR: 8341792: Fix ExceptionOccurred in java.security.jgss
Weijun Wang
weijun at openjdk.org
Wed Oct 9 19:57:13 UTC 2024
On Wed, 9 Oct 2024 17:23:08 GMT, Justin Lu <jlu at openjdk.org> wrote:
>> Switch to `ExceptionCheck`.
>>
>> This is a part of an umbrella bug [JDK-8341542 JNI uses of ExceptionOccurred() treated as if function returns a bool](https://bugs.openjdk.org/browse/JDK-8341542).
>
> src/java.security.jgss/macosx/native/libosxkrb5/SCDynamicStoreConfig.m line 54:
>
>> 52: CHECK_NULL(jm_Config_refresh);
>> 53: (*env)->CallStaticVoidMethod(env, jc_Config, jm_Config_refresh);
>> 54: if ((*env)->ExceptionOccurred(env) != NULL) {
>
> I believe we can keep the original behavior if you want to, because its being compared to `NULL` and not as a boolean.
>
>> Returns the exception object that is currently in the process of being thrown, or NULL if no exception is currently being thrown.
>
> But the new code might read better. So I guess it is just preference.
One concern pointed out by the umbrella bug is that ExceptionOccured(env) returns a jthrowable reference that should be freed by DeleteLocalRef(jthrowable). Even if the reference could be automatically freed later, it's probably still a good practice to either free them early or just not create them at all.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21424#discussion_r1794148140
More information about the security-dev
mailing list