Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

null pointer dereference #923

Closed
abner-hello-world opened this issue Aug 1, 2022 · 3 comments
Closed

null pointer dereference #923

abner-hello-world opened this issue Aug 1, 2022 · 3 comments

Comments

@abner-hello-world
Copy link

MMKV 在一个定制手机的系统应用中,启动被拉起时native崩溃 (null pointer dereference)。崩溃日志如下。版本:1.2.7,尝试了最新版本依然有这个问题。

Build fingerprint: 'HUAWEI/OCE-AN50/HWOCE-ML:10/HUAWEIOCE-AN50/102.0.0.25SP16DGTC00:user/release-keys'
Revision: '0'
ABI: 'arm64'
SYSVMTYPE: Maple
APPVMTYPE: Art
Timestamp: 2022-07-30 20:20:38+0800
pid: 3214, tid: 7464, name: pool-3-thread-1 >>> com.exceple.test <<<
uid: 10147
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
x0 0000000000000000 x1 0000000000000000 x2 0000000000000000 x3 0000000000000003
x4 00000000000000be x5 8080808000000000 x6 0000007c3b412000 x7 000000000000395e
x8 0000000000000000 x9 0000000000000002 x10 0000000000000001 x11 0000000000000000
x12 0000007c384a22c8 x13 0000007c384a224c x14 0000007c384a22c8 x15 0000007c384a224c
x16 0000007c384a89c8 x17 0000007c3849d738 x18 0000007b23cca000 x19 0000007ba32326e0
x20 0000007ba3252920 x21 0000007b4d0cf020 x22 0000007ba325dfd0 x23 0000007ba3252938
x24 0000000000000004 x25 0000007b4d0cf020 x26 0000007b4ff328b0 x27 0000000000000001
x28 0000007b4d0cd8f0 x29 0000007b4d0cd8c0
sp 0000007b4d0cd870 lr 0000007b41a2899c pc 0000007b41a289bc

backtrace:
#00 pc 000000000001f9bc /preload/app/SafetyShield/SafetyShield.apk!libmmkv.so (offset 0xd9b000) (BuildId: 7f374c40ca41cf6289a63c1691532fb48b738168)
#1 pc 0000000000150350 /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#2 pc 0000000000147334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#3 pc 00000000001561b4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#4 pc 00000000002fd900 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#5 pc 00000000002f8bd0 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#6 pc 00000000005cb550 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#7 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#8 pc 00000000000fbc3c /preload/app/SafetyShield/SafetyShield.apk (c0.a.c+8)
#9 pc 00000000005cb860 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#10 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#11 pc 00000000000fbc0c /preload/app/SafetyShield/SafetyShield.apk (c0.a.b+28)
#12 pc 00000000005cb860 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1432) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#13 pc 0000000000141814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#14 pc 000000000022ad18 /preload/app/SafetyShield/SafetyShield.apk (f0.r.r+556)
#15 pc 00000000005cdbfc /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1168) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#16 pc 0000000000141914 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#17 pc 000000000022a810 /preload/app/SafetyShield/SafetyShield.apk (f0.r.a)
#18 pc 00000000005ce408 /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1136) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#19 pc 0000000000141994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#20 pc 000000000022a030 /preload/app/SafetyShield/SafetyShield.apk (f0.n.get+8)
#21 pc 00000000005cd060 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1752) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#22 pc 0000000000141a14 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#23 pc 00000000001cfe6e /apex/com.android.runtime/javalib/core-oj.jar (java.util.concurrent.CompletableFuture$AsyncSupply.run+38)
#24 pc 00000000002ce22c /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.10887373532384510885+320) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#25 pc 00000000005bc090 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1012) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#26 pc 0000000000150468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#27 pc 00000000003d8d08 /system/framework/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+984) (BuildId: 1c70519400e3c2d9d84b97bfb38a83ac04a23afe)
#28 pc 00000000003d5880 /system/framework/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+64) (BuildId: 1c70519400e3c2d9d84b97bfb38a83ac04a23afe)
#29 pc 0000000000217fc8 /system/framework/arm64/boot.oat (java.lang.Thread.run+72) (BuildId: 1c70519400e3c2d9d84b97bfb38a83ac04a23afe)
#30 pc 0000000000147334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#31 pc 00000000001561b4 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+252) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#32 pc 00000000004d8820 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#33 pc 00000000004d98b4 /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+416) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#34 pc 000000000051ca8c /apex/com.android.runtime/lib64/libart.so (art::Thread::CreateCallback(void*)+1232) (BuildId: d98ca4a2e1b346023bc405d851ef7cd5)
#35 pc 00000000000cf7c0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: 40bcd7a014363d580dd473bb60299b29)
#36 pc 00000000000721a8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 40bcd7a014363d580dd473bb60299b29)

@lingol
Copy link
Collaborator

lingol commented Aug 1, 2022

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0

The address is zero. Looks like you have failed to mmap the file.
System app is very different from normal app. You should configure a valid root path with read-write access on MMKV initialization.

@abner-hello-world
Copy link
Author

信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),故障地址 0x0

地址为零。看起来您未能映射文件。 系统应用程序与普通应用程序有很大不同。您应该在 MMKV 初始化时配置具有读写访问权限的有效根路径。

您好,请问MMKV 可准备做非空判断,以防止崩溃的 发生

@lingol
Copy link
Collaborator

lingol commented Aug 1, 2022

I won't repeat myself.

@lingol lingol closed this as completed Aug 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants