Opened on 12/14/2017 at 10:43:46 AM
Last modified on 10/08/2019 at 06:03:45 PM
#6198 new defect
Native crash in FilterEngine.matches()
| Reported by: | asmirnov | Assignee: | |
|---|---|---|---|
| Priority: | P2 | Milestone: | |
| Module: | Libadblockplus-Android | Keywords: | |
| Cc: | sergz | Blocked By: | |
| Blocking: | Platform: | Android | |
| Ready: | no | Confidential: | no | 
| Tester: | Unknown | Verified working: | no | 
| Review URL(s): | |||
Description (last modified by asmirnov)
Environment
Android 7.x devices.
Partner device and stacktrace.
How to reproduce
"the app crashed when I enabled the adblock settings. and I open some url from our browser quickly"
...
Observed behaviour
The app crashes
Expected behaviour
The app does not crash.
Attachments (2)
Change History (8)
Changed on 12/14/2017 at 10:44:11 AM by asmirnov
comment:2 Changed on 12/14/2017 at 10:49:56 AM by asmirnov
    Last edited on 12/15/2017 at 11:26:52 AM
        by asmirnov
  
              comment:3 Changed on 12/14/2017 at 10:52:21 AM by asmirnov
- Cc sergz added
 
comment:5 Changed on 12/14/2017 at 01:00:31 PM by asmirnov
ACCESS_WIFI_STATE and ACCESS_NETWORK_STATE permissions are requested AndroidManifest.xml
Changed on 12/15/2017 at 11:26:03 AM by asmirnov
seems like it's same issue
comment:6 Changed on 07/08/2019 at 09:47:00 AM by aostv
spam
    Last edited on 10/08/2019 at 06:03:45 PM
        by kzar
  
              Note: See
        TracTickets for help on using
        tickets.
    
Actually it's catched by CATCH_THROW_AND_RETURN(env, 0) in https://github.com/adblockplus/libadblockplus-android/blob/master/libadblockplus-android/jni/JniFilterEngine.cpp#L338 or https://github.com/adblockplus/libadblockplus-android/blob/master/libadblockplus-android/jni/JniFilterEngine.cpp#L299.
This is how it works:
#define CATCH_THROW_AND_RETURN(jEnv, retVal) \ catch (const std::exception& except) \ { \ JniThrowException(jEnv, except); \ return retVal; \ } \ catch (...) \ { \ JniThrowException(jEnv); \ return retVal; \ }So something is cached by catch(...):
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------