105 Commits

Author SHA1 Message Date
Harold Seigel
6beed1f844 8161218: Better bytecode loading
Reviewed-by: acorn, mschoene, ctornqvi
2016-07-26 08:23:25 -04:00
Harold Seigel
5f49daa2c4 8159511: Stack map validation
Reviewed-by: acorn, mschoene
2016-06-30 08:11:30 -04:00
Harold Seigel
e8e6415b7a 8058575: IllegalAccessError trying to access package-private class from VM anonymous class
Put anonymous classes in unnamed package into host class's package.  Throw exception if host class's package differs from anonymous class.

Reviewed-by: coleenp, acorn
2016-09-07 07:19:48 -04:00
David Holmes
6db26ca5bf 8158854: Ensure release_store is paired with load_acquire in lock-free code
Reviewed-by: shade, dcubed, zgu
2016-08-29 20:13:45 -04:00
Rachel Protacio
c6c1bee762 8148854: Class names "SomeClass" and "LSomeClass;" treated by JVM as an equivalent
Added default format checking of class names loaded by the app class loader

Reviewed-by: coleenp, lfoltan
2016-08-25 09:23:45 -04:00
Harold Seigel
3f9f0665f6 8155981: Bolster bytecode verification
Reviewed-by: acorn, jdn
2016-05-11 12:03:46 -04:00
Max Ockner
da0fe9d476 8154110: Update class* and safepoint* logging subsystems
Refactored logging tags in class and safepoint subsystems.

Reviewed-by: coleenp, rehn, hseigel
2016-04-29 22:40:51 -04:00
Chris Hegarty
00f6a09302 8137058: Clear out all non-Critical APIs from sun.reflect
Reviewed-by: alanb, jfranck, mchung
2016-04-15 16:19:15 +01:00
Rachel Protacio
d077700179 8153026: Change logging tag 'verboseverification' to 'verification'
Changed UL tag to 'verification'

Reviewed-by: hseigel, lfoltan
2016-04-05 09:42:27 -04:00
Stefan Karlsson
15c4140ae5 8152632: Rename LogHandle(...) to Log(...)
Reviewed-by: brutisso, mlarsson, rprotacio
2016-04-04 09:15:15 +02:00
Max Ockner
155a64deb4 8146551: The output from classresolve tag has been shortened and moved to debug level
The output from classresolve tag has been shortened and moved to debug level.

Reviewed-by: coleenp, rprotacio
2016-03-10 15:52:56 -05:00
Rachel Protacio
22f2f6ff95 8150083: Convert VerboseVerification to Unified Logging
Converted -XX:+VerboseVerfication to -Xlog:verboseverification=info

Reviewed-by: hseigel, dholmes
2016-03-08 15:19:53 -05:00
Harold Seigel
64dd8e763d 8137314: vm crash from test java/security/Policy/SignedJar/SignedJarTest.java
Add additional checks in the verifier for recursive verification

Reviewed-by: acorn, gtriantafill
2016-01-27 07:14:56 -05:00
David Lindholm
ad0c208a5a 8146690: Make all classes in GC follow the naming convention
Reviewed-by: dholmes, stefank
2016-01-14 13:26:19 +01:00
Max Ockner
de7d9e821c 8144874: Reimplement TraceClassResolution with Unified Logging
TraceClassResolution reimplemented with classresolve tag.

Reviewed-by: coleenp, dholmes, iklam, rprotacio
2015-12-23 15:05:38 -05:00
Coleen Phillimore
e858a1cd9a 8144256: compiler/uncommontrap/TestStackBangRbp.java crashes VM on Solaris
Take out inlining of methodHandle copy constructors and destructors

Reviewed-by: hseigel, gtriantafill
2015-12-18 15:50:33 -05:00
Max Ockner
a3d8114b45 8142976: Reimplement TraceClassInitialization with Unified Logging
TraceClassInitialization logging reimplemented with Unified Logging.

Reviewed-by: coleenp, hseigel
2015-12-02 14:07:58 -05:00
Harold Seigel
3756d55ee6 8139164: JVM should throw ClassFormatError for non-void methods named <clinit>
If method being parsed is named <clinit>, throw ClassFormatError if it is not void or has arguments, for class file version >= 51.

Reviewed-by: acorn, lfoltan
2015-11-10 08:42:53 -05:00
Coleen Phillimore
5179fc3488 8139163: InstanceKlass::cast passes through NULL
Reduce raw (InstanceKlass*) casts and InstanceKlass::cast, which no long allows null

Reviewed-by: twisti, kbarrett
2015-10-26 13:11:36 -04:00
Coleen Phillimore
f1e89ea4cc 8140274: methodHandles and constantPoolHandles should be passed as const references
Modified code to use const reference parameters

Reviewed-by: sspitsyn, twisti
2015-10-23 16:48:38 -04:00
Harold Seigel
df9b5759f7 8139069: JVM should throw ClassFormatError for <init> methods in interfaces
If method being parsed is in an interface, throw ClassFormatError if its name is "<init>"

Reviewed-by: acorn, lfoltan
2015-10-14 13:30:47 -04:00
Harold Seigel
d01e8e3c74 8135265: VM fails on 'empty' interface public <init>()V method with VerifyError
Don't check for calls to super() or this() fro <init>()V methods if they are in interfaces.  Because, they are not ctors.

Reviewed-by: acorn, gtriantafill
2015-09-22 14:24:31 -04:00
Harold Seigel
9d7677a83f 8130669: VM prohibits <clinit> methods with return values
Ignore <clinit> methods with return values instead of throwing ClassFormatError exceptions

Reviewed-by: acorn, iklam
2015-07-09 15:39:05 -04:00
Harold Seigel
6a5fa52c18 8076319: jstat verified class fix
Move verify perf data so that it only counts classes that actually get verified.

Reviewed-by: acorn, coleenp, gtriantafill
2015-05-29 15:23:41 -04:00
Harold Seigel
e5e17a62d1 8076318: split verifier needs to add TraceClassResolution
Add print statements to verifier when TraceClassResolution is specified

Reviewed-by: coleenp, acorn
2015-05-08 16:24:46 -04:00
Harold Seigel
257436004b 7127066: Class verifier accepts an invalid class file
For *store bytecodes, compare incoming, not outgoing, type state with exception handlers' stack maps.

Reviewed-by: acorn, dholmes
2015-03-25 08:16:48 -04:00
Harold Seigel
bbd0191aea 8075118: JVM stuck in infinite loop during verification
Keep a list of handlers to prevent the same handler from being scanned repeatedly.

Reviewed-by: dlong, dholmes
2015-03-19 08:55:50 -04:00
Yumin Qi
3bbda04f98 Merge 2015-01-27 20:02:35 -08:00
Alejandro Murillo
bbd13b5561 Merge 2015-01-22 22:42:31 -08:00
Lois Foltan
5f8b5ceaee 8067480: Crash in klassItable::initialize_itable_for_interface when running vm.runtime.defmeth.StaticMethodsTest
A static method should be skipped in entirety by find_instance_method(), searching should continue to find an overpass method of the same name and signature if present.

Reviewed-by: acorn, hseigel
2015-01-23 09:54:33 -05:00
Harold Seigel
4e980350ca 8055146: Split Verifier incorrectly throws VerifyError for getstatic of an array field
Allow fieldClass for getstatic and putstatic to be an array

Reviewed-by: dholmes, acorn
2015-01-14 08:14:23 -05:00
Harold Seigel
5b8ee4c102 8064335: Null pointer dereference in hotspot/src/share/vm/classfile/verifier.cpp
Use correct CHECK macro in call to load_class()

Reviewed-by: coleenp, lfoltan, gziemski
2014-12-30 12:59:20 -05:00
Stefan Karlsson
95704b233c 8064811: Use THREAD instead of CHECK_NULL in return statements
Reviewed-by: coleenp, simonis, dholmes
2014-11-14 09:47:09 +01:00
Harold Seigel
616b927160 8058982: Better verification of an exceptional invokespecial
Throw VerifyError for illegal accesses

Reviewed-by: acorn, ahgross, coleenp
2014-10-20 14:43:11 -04:00
Alejandro Murillo
c3b487d84f Merge 2014-10-17 07:58:54 -07:00
Aleksey Shipilev
fe03f41db8 8059924: com/sun/management/DiagnosticCommandMBean/DcmdMBeanPermissionsTest.java: assert(Universe::verify_in_progress() || !SafepointSynchronize::is_at_safepoint()) failed: invariant
Revive the hashcode installation in Verifier

Reviewed-by: kamg, lfoltan
2014-10-09 16:41:28 +04:00
Aleksey Shipilev
0ba4969549 8059595: Verifier::verify is wasting time before is_eligible_for_verification check
Do the check earlier.

Reviewed-by: hseigel, kamg
2014-10-02 17:13:31 +04:00
Harold Seigel
1bae14de54 8057845: ClassVerifier::verify_exception_handler_targets reconstructs the ExceptionTable in a loop
Construct the ExceptionTable only once, before the loop

Reviewed-by: acorn, jiangli, coleenp, lfoltan
2014-09-19 08:19:04 -04:00
Harold Seigel
1436d4b821 8050485: super() in a try block in a ctor causes VerifyError
Parse catch clause paths to ensure they end in throws

Reviewed-by: dlong, acorn, kamg, ctornqvi, lfoltan
2014-08-12 20:29:25 -04:00
Harold Seigel
f588cd1325 8051012: Regression in verifier for <init> method call from inside of a branch
Fix stackmap matching for branches.

Reviewed-by: coleenp, lfoltan, acorn
2014-08-02 16:28:59 -04:00
Serguei Spitsyn
b0367c3bea Merge 2014-07-18 23:53:59 -07:00
Coleen Phillimore
e051932425 Merge 2014-07-18 11:22:49 -04:00
Coleen Phillimore
3f0a945468 8004128: NPG: remove stackwalking in Threads::gc_prologue and gc_epilogue code
Remove bcx and mdx handling.  We no longer have to convert bytecode pointers to indices for GC since Methods aren't moved.

Reviewed-by: mgerdin, kvn
2014-07-17 15:45:46 -04:00
Harold Seigel
0cc38ff4d5 8043454: Test case for 8037157 should not throw a VerifyError
Don't throw VerifyError if method is NULL.

Reviewed-by: acorn, lfoltan, mschoene
2014-07-14 13:31:03 +04:00
Goetz Lindenmaier
25f33c005d 8049325: Introduce and clean up umbrella headers for the files in the cpu subdirectories
Introduce and clean up umbrella headers for the files in the cpu subdirectories.

Reviewed-by: lfoltan, coleenp, dholmes
2014-07-04 11:46:01 +02:00
Harold Seigel
f203dcbfbf 8036533: Method for correct defaults
8036156: Limit default method hierarchy

Fix protected access checks

Reviewed-by: coleenp, lfoltan, acorn, ahgross
2014-07-22 16:16:51 +04:00
Yuri Gaevsky
4f2c88d8cd 8043925: Fix typo in verifier.cpp
Fix lookupswitch

Reviewed-by: sla, coleenp
2014-05-23 16:54:01 -04:00
Yuri Gaevsky
cc3c656cf1 8025580: Temporary flags: UseNewReflection and ReflectionWrapResolutionErrors
The fix removes all UseNewReflection/ReflectionWrapResolutionErrors occurrences/logic and adds them into the list of obsolete_jvm_flags in arguments.cpp.

Reviewed-by: coleenp, hseigel
2014-05-15 17:38:50 -04:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Harold Seigel
2216f41ed6 8037157: Verify <init> call
Check for null method

Reviewed-by: coleenp, acorn, mschoene
2014-05-07 19:34:48 +04:00