Skip to content

[BUG] Crash in libamplituda-native-lib.so #90

@MSOB7YY

Description

@MSOB7YY

Describe the bug
When extracting from an alac file (in .m4a container) a crash happens in libamplituda-native-lib.so caused by null pointer dereference (see trace below)
(note: sometimes i get normal exception that can be handled, and sometimes crash internally)

To Reproduce
Steps to reproduce the behavior:

  1. Download sample file below
  2. try to extract waveform

Expected behavior
Should extract normally or handle error gracefully

Screenshots

Desktop (please complete the following information):

  • OS: [e.g. Android]
  • Version [v2.3.1]

Smartphone (please complete the following information):

  • Issue happens regardless phone type

Additional context

sample file:
sample-4.zip

crash details:

Revision: '0'
ABI: 'x86_64'
uid: 10210
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000178
Cause: null pointer dereference
    rax 00007a966e1e4c80  rbx 00007a971e3984f0  rcx 00007a961e26f000  rdx 0000000000000000
    r8  00000000000000b0  r9  0000000300002004  r10 e93c000300002004  r11 0000000000000213
    r12 0000000000000000  r13 00007a96ae385e00  r14 0000000000000000  r15 0000000000000000
    rdi 00007a98c4361380  rsi 0000000000000008
    rbp 00007a94e1cf4d00  rsp 00007a94e1cf4be0  rip 00007a94f674c167

backtrace:
      #00 pc 0000000000023167  /data/app/~~fA-Rtp4lG-xV3-gf_M5PbQ==/com.msob7y.namida.debug-HoMjR9A9tHoHwZBPnUWkPA==/lib/x86_64/libamplituda-native-lib.so (Java_com_linc_amplituda_Amplituda_amplitudesFromAudioJNI+919) (BuildId: 2190120c49341778abbcb284426b33c8d807047f)
      #01 pc 000000000022b5eb  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+219) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #02 pc 0000000000212154  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+756) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #03 pc 0000000000474bf5  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+181) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #04 pc 00000000005fa027  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2231) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #05 pc 0000000000233063  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+14755) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #06 pc 000000000022d2e5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #07 pc 000000000028230c  <anonymous:7a9582e1b000> (com.linc.amplituda.Amplituda.processFileJNI+0)
      #08 pc 00000000005f1de9  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+505) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #09 pc 00000000005f85f7  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+103) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #10 pc 00000000005fa00d  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2205) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #11 pc 0000000000233063  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+14755) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #12 pc 000000000022d2e5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: 62338b1c62e3991543c9b8b8bae2b361)
      #13 pc 0000000000282174  <anonymous:7a9582e1b000> (com.linc.amplituda.Amplituda.processAudio+0)
...

exception when it happens (usually crashes instead of this):

com.linc.amplituda.exceptions.processing.CodecNotFoundException: Failed to find codec!
Read Amplituda doc here: https://github.com/lincollincol/Amplituda
 at com.linc.amplituda.AmplitudaResultJNI.getExceptionFromCode(AmplitudaResultJNI.java:100)
 at com.linc.amplituda.AmplitudaResultJNI.getErrors(AmplitudaResultJNI.java:84)
 at com.linc.amplituda.AmplitudaProcessingOutput.<init>(AmplitudaProcessingOutput.java:32)
 at com.linc.amplituda.Amplituda.processAudio(Amplituda.java:367)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions