# HG changeset patch # User weijun # Date 1540268759 -28800 # Node ID d80d077d65b162f331c75a965ddfdae13f9d7418 # Parent 27ba7cc31f9fed4a8019112a38c6e1a00fe312f8 8212216: JGSS: Fix leak in exception cases in getJavaOID() Reviewed-by: mullan, weijun Contributed-by: Nico Williams diff -r 27ba7cc31f9f -r d80d077d65b1 src/java.security.jgss/share/native/libj2gss/NativeUtil.c --- a/src/java.security.jgss/share/native/libj2gss/NativeUtil.c Mon Oct 22 19:31:41 2018 -0700 +++ b/src/java.security.jgss/share/native/libj2gss/NativeUtil.c Tue Oct 23 12:25:59 2018 +0800 @@ -724,17 +724,14 @@ if (jbytes == NULL) { return NULL; } - (*env)->SetByteArrayRegion(env, jbytes, 0, 2, (jbyte *) oidHdr); - if ((*env)->ExceptionCheck(env)) { - return NULL; + if (!(*env)->ExceptionCheck(env)) { + (*env)->SetByteArrayRegion(env, jbytes, 0, 2, (jbyte *) oidHdr); } - (*env)->SetByteArrayRegion(env, jbytes, 2, cLen, (jbyte *) cOid->elements); - if ((*env)->ExceptionCheck(env)) { - return NULL; + if (!(*env)->ExceptionCheck(env)) { + (*env)->SetByteArrayRegion(env, jbytes, 2, cLen, (jbyte *) cOid->elements); } - result = (*env)->NewObject(env, CLS_Oid, MID_Oid_ctor1, jbytes); - if ((*env)->ExceptionCheck(env)) { - return NULL; + if (!(*env)->ExceptionCheck(env)) { + result = (*env)->NewObject(env, CLS_Oid, MID_Oid_ctor1, jbytes); } (*env)->DeleteLocalRef(env, jbytes); return result;