diff --git a/buffet/buffet_config_unittest.cc b/buffet/buffet_config_unittest.cc
index 373a18c..069761e 100644
--- a/buffet/buffet_config_unittest.cc
+++ b/buffet/buffet_config_unittest.cc
@@ -87,19 +87,20 @@
     config_.reset(new BuffetConfig{config_options});
     config_->SetEncryptor(this);
     config_->SetFileIO(this);
-  };
+  }
 
   // buffet::Encryptor methods.
   bool EncryptWithAuthentication(const std::string& plaintext,
                                  std::string* ciphertext) override {
     *ciphertext = brillo::data_encoding::Base64Encode(plaintext);
     return encryptor_result_;
-  };
+  }
+
   bool DecryptWithAuthentication(const std::string& ciphertext,
                                  std::string* plaintext) override {
     return encryptor_result_ &&
            brillo::data_encoding::Base64Decode(ciphertext, plaintext);
-  };
+  }
 
   // buffet::BuffetConfig::FileIO methods.
   bool ReadFile(const base::FilePath& path, std::string* content) override {
@@ -108,14 +109,15 @@
     }
     *content = fake_file_content_[path.value()];
     return io_result_;
-  };
+  }
+
   bool WriteFile(const base::FilePath& path,
                  const std::string& content) override {
     if (io_result_) {
       fake_file_content_[path.value()] = content;
     }
     return io_result_;
-  };
+  }
 
  protected:
   std::map<std::string, std::string> fake_file_content_;
