diff options
-rw-r--r-- | src/ledflasher/ledflasher.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/ledflasher/ledflasher.cpp b/src/ledflasher/ledflasher.cpp index 4d43df2..5859647 100644 --- a/src/ledflasher/ledflasher.cpp +++ b/src/ledflasher/ledflasher.cpp @@ -109,22 +109,25 @@ void Daemon::OnSet(const std::weak_ptr<weaved::Command>& cmd) { return; if (!led_service_) { - CHECK(command->Abort("system_error", "ledservice unavailable", nullptr)); + command->Abort("system_error", "ledservice unavailable", nullptr); return; } int index = command->GetParameter<int>("_led"); - CHECK_GT(index, 0); + if(index < 1 || index > 4) { + command->Abort("invalid_parameter", "Invalid parameter value", nullptr); + return; + } bool on = command->GetParameter<bool>("_on"); brillo::ErrorPtr error; if (!led_service_->SetLED(index - 1, on, &error)) { - CHECK(command->Abort(error->GetCode(), error->GetMessage(), nullptr)); + command->Abort(error->GetCode(), error->GetMessage(), nullptr); return; } animation_.reset(); status_ = "idle"; UpdateDeviceState(); - CHECK(command->Complete({}, nullptr)); + command->Complete({}, nullptr); } void Daemon::OnToggle(const std::weak_ptr<weaved::Command>& cmd) { @@ -133,24 +136,27 @@ void Daemon::OnToggle(const std::weak_ptr<weaved::Command>& cmd) { return; if (!led_service_) { - CHECK(command->Abort("system_error", "ledservice unavailable", nullptr)); + command->Abort("system_error", "ledservice unavailable", nullptr); return; } int index = command->GetParameter<int>("_led"); - CHECK_GT(index, 0); + if(index < 1 || index > 4) { + command->Abort("invalid_parameter", "Invalid parameter value", nullptr); + return; + } index--; bool on = false; brillo::ErrorPtr error; if(!led_service_->GetLED(index, &on, &error) || !led_service_->SetLED(index, !on, &error)) { - CHECK(command->Abort(error->GetCode(), error->GetMessage(), nullptr)); + command->Abort(error->GetCode(), error->GetMessage(), nullptr); return; } animation_.reset(); status_ = "idle"; UpdateDeviceState(); - CHECK(command->Complete({}, nullptr)); + command->Complete({}, nullptr); } void Daemon::OnAnimate(const std::weak_ptr<weaved::Command>& cmd) { @@ -159,11 +165,15 @@ void Daemon::OnAnimate(const std::weak_ptr<weaved::Command>& cmd) { return; if (!led_service_) { - CHECK(command->Abort("system_error", "ledservice unavailable", nullptr)); + command->Abort("system_error", "ledservice unavailable", nullptr); return; } double duration = command->GetParameter<double>("_duration"); + if(duration <= 0.0) { + command->Abort("invalid_parameter", "Invalid parameter value", nullptr); + return; + } std::string type = command->GetParameter<std::string>("_type"); animation_ = Animation::Create(led_service_, type, base::TimeDelta::FromSecondsD(duration)); @@ -174,7 +184,7 @@ void Daemon::OnAnimate(const std::weak_ptr<weaved::Command>& cmd) { status_ = "idle"; } UpdateDeviceState(); - CHECK(command->Complete({}, nullptr)); + command->Complete({}, nullptr); } void Daemon::UpdateDeviceState() { |