In old implementation SmackAuditLog was always added to provider list
and it cause problem inside security-server-client library because
process that loaded this library was not allowed to access smack log
files.
[Issue#] N/A
[Problem/Bug] Lots of SMACK deny logs in audit files.
[Cause] Unecessary initialization of SmackAuditLog inside client-library.
[Solution] Remove SmackAuditLog from client.
[Verification] Build, run tests.
Change-Id: I08b5bcfe0a539d73f8c38b0fe234476b5c679631
#else // BUILD_TYPE_DEBUG
AddProvider(new DLOGLogProvider());
#endif // BUILD_TYPE_DEBUG
-
- AuditSmackLog * smackLog = new AuditSmackLog();
- if (smackLog->Fail()) {
- delete smackLog;
- } else {
- AddProvider(smackLog);
- }
}
LogSystem::~LogSystem()
#include <signal.h>
#include <dpl/log/log.h>
+#include <dpl/log/audit-smack-log.h>
#include <dpl/singleton.h>
#include <dpl/singleton_safe_impl.h>
{
SecurityServer::Singleton<SecurityServer::Log::LogSystem>::Instance().SetTag("SECURITY_SERVER");
+ // This provider may be used in security-server only.
+ // If we add it inside LogSystem constructor it also
+ // will be used by security-server-client library.
+ SecurityServer::Log::AuditSmackLog *smackLog = new SecurityServer::Log::AuditSmackLog;
+ if (smackLog->Fail())
+ delete smackLog;
+ else
+ SecurityServer::Singleton<SecurityServer::Log::LogSystem>::Instance().AddProvider(smackLog);
+
sigset_t mask;
sigemptyset(&mask);
sigaddset(&mask, SIGTERM);