Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b164de4 authored by Pavlin Radoslavov's avatar Pavlin Radoslavov Committed by Andre Eisenbach
Browse files

Disable the OSI allocation tracker.

Temporary disable the allocation tracker initialization
(even for BLUEDROID_DEBUG) when initializing Bluetooth.
This is a short-term workaround solution for several issues related to
the usage of the allocation tracker.

* Inconsistent usage of osi_malloc()/osi_calloc() and osi_free()
  - Within some of the Bluetooth-related unit tests we have two copies
    of the same libosi library: one copy statically linked against the
    unit test, and another dlopen() at runtime as part of bluetooth.default.so
    Each of those copy has its own static variables.
  - For the dlopen() copy we do call allocation_tracker_init(), while for the
    static copy within the unit test we don't call allocation_tracker_init()
  - Occasionally, there is a  memory allocation via osi_calloc()
    within the dlopen()-ed library, and then it is osi_free()-ed
    within the statically linked library.
 Such (mis)usage creates issues in two ways: (1) free()-ing incorrect
 pointer, and (2) the osi hash_map() in the dlopen()-ed library still considers
 the osi-tracked memory as allocated.
 NOTE: (1) could trigger random crashes, while (2) is the reason the unit
 test triggers an assert

* Avoid potential issues that could result from the fact that calling
  allocation_tracker_init() is not mandatory; i.e., the same
  issue described above could be triggered if osi_malloc()/osi_callod()
  was called before the call to allocation_tracker_init()

* There is still code that uses malloc(3)/calloc(3) and free(3) instead
  of osi_malloc()/osi_calloc() and osi_free()

Also, add missing pthread_mutex_lock()/pthread_mutex_unlock() guards,
and fix the allocation_tracker_uninit() implementation so it works
properly even if void allocation_tracker_init() wasn't called.

Bug: 21561735
Change-Id: Ic83d6cd40af1189c4ee9c1dbfd0ad8e4666e1502
parent 96bc48ae
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment