diff --git a/src/cpuinfo_main.cpp b/src/cpuinfo_main.cpp
index c54cdb6..51ae848 100644
--- a/src/cpuinfo_main.cpp
+++ b/src/cpuinfo_main.cpp
@@ -290,7 +290,7 @@
                 "Cannot set CPU property!");
             return;
         }
-        },
+    },
         cpuProcessName, newProp.object.c_str(),
         "org.freedesktop.DBus.Properties", "Set", newProp.interface,
         newProp.name, std::variant<std::string>{newProp.value});
@@ -342,7 +342,7 @@
                 setDbusProperty(conn, cpu, prop);
             }
         }
-            }));
+    }));
 }
 
 static void
@@ -557,7 +557,7 @@
 
             getProcessorInfo(io, conn, cpu);
         }
-        },
+    },
         service, object, "org.freedesktop.DBus.Properties", "GetAll",
         interface);
 }
@@ -596,7 +596,7 @@
             }
             getCpuConfiguration(io, conn, objServer);
         });
-            });
+    });
 
     conn->async_method_call(
         [&io, conn](
@@ -631,7 +631,7 @@
             std::cerr << "getCpuConfiguration callback complete\n";
 
         return;
-        },
+    },
         "xyz.openbmc_project.ObjectMapper",
         "/xyz/openbmc_project/object_mapper",
         "xyz.openbmc_project.ObjectMapper", "GetSubTree",
diff --git a/src/cpuinfo_utils.cpp b/src/cpuinfo_utils.cpp
index c291718..5c46585 100644
--- a/src/cpuinfo_utils.cpp
+++ b/src/cpuinfo_utils.cpp
@@ -181,7 +181,7 @@
             return;
         }
         handler(newValue);
-        });
+    });
 
     using ChangedPropertiesType =
         std::vector<std::pair<std::string, InterfaceVariant>>;
@@ -224,7 +224,7 @@
 
         DEBUG_PRINT << "PropertiesChanged handled\n";
         commonPropHandler(changedProps);
-        });
+    });
 
     // Set up a match for the InterfacesAdded signal from the service's
     // ObjectManager. This is useful in the case where the object is not added
@@ -257,7 +257,7 @@
             DEBUG_PRINT << "InterfacesAdded handled\n";
             commonPropHandler(changedProps);
         }
-        });
+    });
 
     if (propertiesChangedMatch != nullptr)
     {
diff --git a/src/mdrv2.cpp b/src/mdrv2.cpp
index 99dc302..73cc306 100644
--- a/src/mdrv2.cpp
+++ b/src/mdrv2.cpp
@@ -461,7 +461,7 @@
                     {
                         systemInfoUpdate();
                     }
-                        });
+                });
             }
         }
         else
