diff --git a/src/cmd.cpp b/src/cmd.cpp
index a3c9d3f..107b8a3 100644
--- a/src/cmd.cpp
+++ b/src/cmd.cpp
@@ -93,9 +93,9 @@
     m.append(netfn, lun, cmd, in.subspan(2), options);
     outstanding = m.call_async(
         stdplus::exception::ignore([&outstanding, &kcs](message_t&& m) {
-        outstanding = slot_t(nullptr);
-        write(kcs, std::move(m));
-    }));
+            outstanding = slot_t(nullptr);
+            write(kcs, std::move(m));
+        }));
 }
 
 } // namespace kcsbridge
diff --git a/src/main.cpp b/src/main.cpp
index 9d7d99e..c39354d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -55,8 +55,9 @@
     // Add a reader to the bus for handling inbound IPMI
     IO ioSource(
         event, kcs.get(), EPOLLIN | EPOLLET,
-        stdplus::exception::ignore(
-            [&kcs, &bus, &slot](IO&, int, uint32_t) { read(kcs, bus, slot); }));
+        stdplus::exception::ignore([&kcs, &bus, &slot](IO&, int, uint32_t) {
+            read(kcs, bus, slot);
+        }));
 
     // Allow processes to affect the state machine
     std::string dbusChannel = channel;
diff --git a/src/server.cpp b/src/server.cpp
index 4ac4929..a3a1b47 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -63,9 +63,8 @@
     sdbusplus::vtable::end(),
 };
 
-sdbusplus::server::interface::interface createSMSHandler(sdbusplus::bus_t& bus,
-                                                         const char* obj,
-                                                         stdplus::Fd& kcs)
+sdbusplus::server::interface::interface createSMSHandler(
+    sdbusplus::bus_t& bus, const char* obj, stdplus::Fd& kcs)
 {
     return sdbusplus::server::interface::interface(
         bus, obj, "xyz.openbmc_project.Ipmi.Channel.SMS",
diff --git a/src/server.hpp b/src/server.hpp
index 1dfb084..bf1472f 100644
--- a/src/server.hpp
+++ b/src/server.hpp
@@ -6,8 +6,7 @@
 namespace kcsbridge
 {
 
-sdbusplus::server::interface::interface createSMSHandler(sdbusplus::bus_t& bus,
-                                                         const char* obj,
-                                                         stdplus::Fd& kcs);
+sdbusplus::server::interface::interface createSMSHandler(
+    sdbusplus::bus_t& bus, const char* obj, stdplus::Fd& kcs);
 
 }
