Alex Light | 07f0621 | 2017-06-01 14:01:43 -0700 | [diff] [blame] | 1 | Regression test for b/62237378 |
| 2 | |
| 3 | It was possible for the JVMTI class redefinition to encounter a use-after-free |
| 4 | bug if there had been an attempted redefinition that failed due to a |
| 5 | verification error in the same class loader. Actually encountering the bug |
| 6 | required that a later redefinition happen to get the same native pointer for its |
| 7 | dex-file as the failed redefinition. |
| 8 | |
| 9 | Hitting this use-after-free can cause many strange outcomes, from CHECK failures |
| 10 | to segfaults to incorrect redefinition failures (for example on buggy builds |
| 11 | this test will fail a DCHECK on debug builds, segfault on x86_64 hosts and have |
| 12 | redefinition of LDexCacheSmash$Transform; erroneously fail with |
| 13 | JVMTI_ERROR_FAILS_VERIFICATION on 32 bit hosts). |