Home | History | Annotate | Download | only in main
      1 # Suppressions for Android's libc (bionic) and probably other
      2 # stuff too.
      3 
      4 {
      5   bionic_dlopen
      6   Memcheck:Addr4
      7   fun:__dl_strlen
      8   ...
      9   fun:__dl_find_library
     10   fun:__dl_dlopen
     11 }
     12 
     13 {
     14   bionic_dlopen_c
     15   Memcheck:Cond
     16   fun:__dl_strlen
     17   ...
     18   fun:__dl_find_library
     19   fun:__dl_dlopen
     20 }
     21 
     22 # this is a real bug in the Android stack -- this routine really does read and write below sp.
     23 {
     24    sha1_block_data_order-reads-below-sp
     25    Memcheck:Addr4
     26    fun:sha1_block_data_order
     27 }
     28 
     29 # This is a false error, and it's reported in the wrong place.  Memcheck misinterprets
     30 # a restore path in dvmPlatformInvoke: "ldmdb   r4, {r4, r5, r6, r7, r8, r9, sp, pc}"
     31 # because it breaks this up into non-atomic IR.  This non atomic IR restores PC
     32 # first, then SP, and then r4-r9; the latter of which happen after (from Memcheck's
     33 # point of view) the assignment to SP, hence constitute a read below SP (depends
     34 # which way SP moved, I guess).  Worse, because these happen after the restore to SP,
     35 # the errors are reported in the callers of this function, not here :-(
     36 # General bogusness all round, but I don't see how to handle it any better.  Hence
     37 # hide all the callers; fortunately there appear to be not many.
     38 #
     39 {
     40    dvmPlatformInvoke-misinterpretation-1
     41    Memcheck:Addr4
     42    fun:dvmCallJNIMethod_virtualNoRef
     43 }
     44 
     45 {
     46    dvmPlatformInvoke-misinterpretation-2
     47    Memcheck:Addr4
     48    fun:dvmCallJNIMethod_staticNoRef
     49 }
     50 
     51 {
     52    dvmPlatformInvoke-misinterpretation-3
     53    Memcheck:Addr4
     54    fun:dvmCallJNIMethod_general
     55 }
     56