# HG changeset patch # User gdub # Date 1472243873 25200 # Node ID 0dceb4846c8cb96ea2509348f72d452c97c4308d # Parent a074ae16281debaae6c47ab7905f17ddf267fcde 8031427: AllocObject and Unsafe.allocateInstance segfault for primitive types Summary: The fix just throws an InstantiationException if the Klass is NULL. Reviewed-by: coleenp, twisti, jrose Contributed-by: gdub diff -r a074ae16281d -r 0dceb4846c8c src/share/vm/prims/jni.cpp --- a/src/share/vm/prims/jni.cpp Fri Aug 26 17:49:18 2016 +0200 +++ b/src/share/vm/prims/jni.cpp Fri Aug 26 13:37:53 2016 -0700 @@ -1409,6 +1409,10 @@ static instanceOop alloc_object(jclass clazz, TRAPS) { KlassHandle k(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz))); + if (k == NULL) { + ResourceMark rm(THREAD); + THROW_(vmSymbols::java_lang_InstantiationException(), NULL); + } k()->check_valid_for_instantiation(false, CHECK_NULL); InstanceKlass::cast(k())->initialize(CHECK_NULL); instanceOop ih = InstanceKlass::cast(k())->allocate_instance(THREAD);