diff --git a/src/access/AccessControl.cpp b/src/access/AccessControl.cpp index c84c1fc313d58a..0f6c80c9f38e21 100644 --- a/src/access/AccessControl.cpp +++ b/src/access/AccessControl.cpp @@ -632,5 +632,10 @@ void SetAccessControl(AccessControl & accessControl) globalAccessControl = &accessControl; } +void ResetAccessControlToDefault() +{ + globalAccessControl = &defaultAccessControl; +} + } // namespace Access } // namespace chip diff --git a/src/access/AccessControl.h b/src/access/AccessControl.h index d4dfddd9cfaaab..7ed2d5809f007c 100644 --- a/src/access/AccessControl.h +++ b/src/access/AccessControl.h @@ -683,7 +683,7 @@ void SetAccessControl(AccessControl & accessControl); * * Calls to this function must be synchronized externally. */ -void ResetAccessControl(); +void ResetAccessControlToDefault(); } // namespace Access } // namespace chip diff --git a/src/access/tests/TestAccessControl.cpp b/src/access/tests/TestAccessControl.cpp index f1c28fdf6c9160..9691c7296257b1 100644 --- a/src/access/tests/TestAccessControl.cpp +++ b/src/access/tests/TestAccessControl.cpp @@ -2173,6 +2173,7 @@ int Setup(void * inContext) int Teardown(void * inContext) { GetAccessControl().Finish(); + ResetAccessControlToDefault(); return SUCCESS; } diff --git a/src/app/server/Server.cpp b/src/app/server/Server.cpp index bc8f94335fb46e..a3a2b49d70eb46 100644 --- a/src/app/server/Server.cpp +++ b/src/app/server/Server.cpp @@ -430,6 +430,7 @@ void Server::Shutdown() mSessions.Shutdown(); mTransports.Close(); mAccessControl.Finish(); + Access::ResetAccessControlToDefault(); Credentials::SetGroupDataProvider(nullptr); mAttributePersister.Shutdown(); // TODO(16969): Remove chip::Platform::MemoryInit() call from Server class, it belongs to outer code diff --git a/src/app/tests/AppTestContext.cpp b/src/app/tests/AppTestContext.cpp index 11995376dcf9b9..3a63c3e21c5952 100644 --- a/src/app/tests/AppTestContext.cpp +++ b/src/app/tests/AppTestContext.cpp @@ -52,6 +52,7 @@ CHIP_ERROR AppContext::Init() void AppContext::Shutdown() { Access::GetAccessControl().Finish(); + Access::ResetAccessControlToDefault(); chip::app::InteractionModelEngine::GetInstance()->Shutdown(); Super::Shutdown();