Proper checks for SCHED_NORMAL. am: b7798be47e
am: 91feb47dc1
Change-Id: I16e00faf86fc3b1ae8d64348d8be32396942d389
diff --git a/transport/HidlTransportSupport.cpp b/transport/HidlTransportSupport.cpp
index b214f1a..591ccba 100644
--- a/transport/HidlTransportSupport.cpp
+++ b/transport/HidlTransportSupport.cpp
@@ -47,17 +47,24 @@
return false;
}
- if (policy != SCHED_NORMAL && policy != SCHED_FIFO && policy != SCHED_RR) {
- LOG(ERROR) << "Invalid scheduler policy " << policy;
- return false;
- }
-
- if (policy == SCHED_NORMAL && (priority < -20 || priority > 19)) {
- LOG(ERROR) << "Invalid priority for SCHED_NORMAL: " << priority;
- return false;
- } else if (priority < 1 || priority > 99) {
- LOG(ERROR) << "Invalid priority for real-time policy: " << priority;
- return false;
+ switch (policy) {
+ case SCHED_NORMAL: {
+ if (priority < -20 || priority > 19) {
+ LOG(ERROR) << "Invalid priority for SCHED_NORMAL: " << priority;
+ return false;
+ }
+ } break;
+ case SCHED_RR:
+ case SCHED_FIFO: {
+ if (priority < 1 || priority > 99) {
+ LOG(ERROR) << "Invalid priority for " << policy << " policy: " << priority;
+ return false;
+ }
+ } break;
+ default: {
+ LOG(ERROR) << "Invalid scheduler policy " << policy;
+ return false;
+ }
}
// Due to ABI considerations, IBase cannot have a destructor to clean this up.