(1) As the following call chain indicating, mModule is indeed not pointing to heap memory object, trying to delete it is illegal.
HIDL_FETCH_IPower -> hw_get_module -> hw_get_module_by_class -> load(hardware/libhardware/hardware.c)
(2) Fix by removing 'delete'
Test: monkey test
Signed-off-by: Jintao Zhu <zhujtcsieee@gmail.com>
Signed-off-by: Steven Moreland <smoreland@google.com>
Change-Id: If95bd8823354cd862d105b96101f910dc1ca95a6
Some working implementations of the libhardware power HAL do not
implement an open method. Change the HIDL implementation to not rely
on that method being available.
Test: Flashed marlin with modified power.marlin that omits an open()
implementation; power HAL loads successfully and passes VTS
Bug: 37245218
Signed-off-by: Connor O'Brien <connoro@google.com>
Change-Id: Icc77b3011a0e44330062aa51ae49e39ad349a2a5
The getService() and registerAsService() methods of interface objects
now have default parameters of "default" for the service name. HALs
will not have to use any service name unless they want to register
more than one service.
Test: builds; verify HAL still works
Bug: 33844934
Change-Id: I7a5d9e848efabf624299ee81ee42aa046b61c660
Bug: http://b/31532493
The latest clang will trigger an error diagnostic "ordered comparison
between pointer and zero ..." when you do something like "p > 0". This
change replaces the ordered comparisons with proper checks instead.
Test: Validated with latest toolchain.
Change-Id: I4a127fe2551688c8176bdd31210cf7f2f40baeba
number_platform_modes variable is from another module (e.g.,
eModule->get_number_of_platform_modes(mModule)) and thus can be
a big number. If a big number is used as the size of new operation,
it can cause an exception as is.
Test: mma
Change-Id: I6cf6027804be980ad39c80a1571b284efabce7e8