Fix integer sanitizer in audiopolicyservice.
A size_t was being converted to a ssize_t after an intended overflow
had already occurred. This makes the conversion explicit.
unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned
int'
Test: Compiled with the change and checked the sanitizer output.
Bug: 30969751
Change-Id: Ic15cc4b5d8295e14e3588ffa240830f7570dcaf3
diff --git a/services/audiopolicy/service/AudioPolicyService.cpp b/services/audiopolicy/service/AudioPolicyService.cpp
index b417631..7af2e74 100644
--- a/services/audiopolicy/service/AudioPolicyService.cpp
+++ b/services/audiopolicy/service/AudioPolicyService.cpp
@@ -859,7 +859,7 @@
}
// check same pending commands with later time stamps and eliminate them
- for (i = mAudioCommands.size()-1; i >= 0; i--) {
+ for (i = (ssize_t)mAudioCommands.size()-1; i >= 0; i--) {
sp<AudioCommand> command2 = mAudioCommands[i];
// commands are sorted by increasing time stamp: no need to scan the rest of mAudioCommands
if (command2->mTime <= command->mTime) break;