diff --git a/monitor/json_parser.cpp b/monitor/json_parser.cpp
index b5b7291..bf37307 100644
--- a/monitor/json_parser.cpp
+++ b/monitor/json_parser.cpp
@@ -437,8 +437,8 @@
             {"missing_fan_frus",
              [count]() { return std::make_unique<MissingFanFRUCause>(count); }},
             {"nonfunc_fan_rotors", [count]() {
-                 return std::make_unique<NonfuncFanRotorCause>(count);
-             }}};
+        return std::make_unique<NonfuncFanRotorCause>(count);
+    }}};
 
     auto it = causes.find(powerOffCause);
     if (it != causes.end())
diff --git a/monitor/system.cpp b/monitor/system.cpp
index bb2e95e..5c2ed4e 100644
--- a/monitor/system.cpp
+++ b/monitor/system.cpp
@@ -378,8 +378,8 @@
         // If no fan has its sensors on D-Bus, then there is a problem
         // with the fan controller.  Log an error and shut down.
         if (std::all_of(_fans.begin(), _fans.end(), [](const auto& fan) {
-                return fan->numSensorsOnDBusAtPowerOn() == 0;
-            }))
+            return fan->numSensorsOnDBusAtPowerOn() == 0;
+        }))
         {
 #if DELAY_HOST_CONTROL > 0
             sleep(DELAY_HOST_CONTROL);
@@ -388,8 +388,8 @@
                 fan->powerStateChanged(powerStateOn);
             });
             if (std::all_of(_fans.begin(), _fans.end(), [](const auto& fan) {
-                    return fan->numSensorsOnDBusAtPowerOn() == 0;
-                }))
+                return fan->numSensorsOnDBusAtPowerOn() == 0;
+            }))
             {
                 handleOfflineFanController();
                 return;
diff --git a/monitor/trust_group.hpp b/monitor/trust_group.hpp
index e2cb269..3e73525 100644
--- a/monitor/trust_group.hpp
+++ b/monitor/trust_group.hpp
@@ -91,7 +91,7 @@
         return (std::find_if(_sensors.begin(), _sensors.end(),
                              [&sensor](const auto& s) {
             return sensor.name() == s.sensor->name();
-                }) != _sensors.end());
+        }) != _sensors.end());
     }
 
     /**
