commit | 85887b58f472916ce1b03978ca8681c64e037a26 | [log] [tgz] |
---|---|---|
author | Samuel Holland <samuel.holland@sifive.com> | Wed Sep 20 16:44:26 2023 -0700 |
committer | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | Thu Sep 21 07:12:29 2023 +0000 |
tree | dd455f90161c027011fe338581a167ea8707903a | |
parent | 80eeb4f3a06431e66b15950498487f68f7c6ded1 [diff] |
riscv64: Fix crash in ExecuteNterpWithClinitImpl ArtMethod::declaring_class_ is a GcRoot, which is only 32 bits wide. With the 64-bit load, if the adjacent ArtMethod::access_flags_ field is nonzero, the pointer in t0 will be invalid, and dereferencing it will cause a segmentation fault. This was observed as system_server crashing during the second boot of the device. Test: Boot AOSP on HiFive Unmatched twice Change-Id: Iaee482f6fcf963dc6d330650aa4be58311a807ad