diff --git a/libpldmresponder/bios_config.hpp b/libpldmresponder/bios_config.hpp
index 4e69089..2d07593 100644
--- a/libpldmresponder/bios_config.hpp
+++ b/libpldmresponder/bios_config.hpp
@@ -199,11 +199,10 @@
                         propertiesChanged(dBusMap->objectPath,
                                           dBusMap->interface),
                         [this, biosAttrIndex](sdbusplus::message_t& msg) {
-                            DbusChObjProperties props;
-                            std::string iface;
-                            msg.read(iface, props);
-                            processBiosAttrChangeNotification(props,
-                                                              biosAttrIndex);
+                    DbusChObjProperties props;
+                    std::string iface;
+                    msg.read(iface, props);
+                    processBiosAttrChangeNotification(props, biosAttrIndex);
                         }));
 
                 biosAttrMatch.push_back(
@@ -212,16 +211,16 @@
                         interfacesAdded() + argNpath(0, dBusMap->objectPath),
                         [this, biosAttrIndex, interface = dBusMap->interface](
                             sdbusplus::message_t& msg) {
-                            sdbusplus::message::object_path path;
-                            DbusIfacesAdded interfaces;
+                    sdbusplus::message::object_path path;
+                    DbusIfacesAdded interfaces;
 
-                            msg.read(path, interfaces);
-                            auto ifaceIt = interfaces.find(interface);
-                            if (ifaceIt != interfaces.end())
-                            {
-                                processBiosAttrChangeNotification(
-                                    ifaceIt->second, biosAttrIndex);
-                            }
+                    msg.read(path, interfaces);
+                    auto ifaceIt = interfaces.find(interface);
+                    if (ifaceIt != interfaces.end())
+                    {
+                        processBiosAttrChangeNotification(ifaceIt->second,
+                                                          biosAttrIndex);
+                    }
                         }));
             }
         }
