void RemoveOldDatabases(uid_t uid) {
char *parser_db = getUserPkgParserDBPathUID(uid);
- char *cert_db = getUserPkgCertDBPathUID(uid);
- if (parser_db == nullptr || cert_db == nullptr) {
+
+ if (parser_db == nullptr) {
std::cerr << "Failed to get db path, cannot remove old databases";
free(parser_db);
- free(cert_db);
return;
}
std::string journal = "-journal";
std::string parser_db_journal = parser_db + journal;
- std::string cert_db_journal = cert_db + journal;
bs::error_code error;
bf::path info_db_path(parser_db);
bf::path info_db_journal_path(parser_db_journal.c_str());
- bf::path cert_db_path(cert_db);
- bf::path cert_db_journal_path(cert_db_journal.c_str());
+
bf::remove(info_db_path, error);
if (error)
bf::remove(info_db_journal_path, error);
if (error)
std::cerr << info_db_journal_path << " is not removed" << std::endl;
- bf::remove(cert_db_path, error);
- if (error)
- std::cerr << cert_db_path << " is not removed" << std::endl;
- bf::remove(cert_db_journal_path, error);
- if (error)
- std::cerr << cert_db_journal_path << " is not removed" << std::endl;
+ if (IsGlobal(uid)) {
+ char *cert_db = getUserPkgCertDBPath();
+ std::string cert_db_journal = cert_db + journal;
+ bf::path cert_db_path(cert_db);
+ bf::path cert_db_journal_path(cert_db_journal.c_str());
+
+ bf::remove(cert_db_path, error);
+ if (error)
+ std::cerr << cert_db_path << " is not removed" << std::endl;
+ bf::remove(cert_db_journal_path, error);
+ if (error)
+ std::cerr << cert_db_journal_path << " is not removed" << std::endl;
+ free(cert_db);
+ }
- free(cert_db);
free(parser_db);
}