Skip to content

Commit

Permalink
fix: avoid creating client_id file for empty DIR_CRASH_DUMPS (#25316)
Browse files Browse the repository at this point in the history
  • Loading branch information
deepak1556 committed Sep 4, 2020
1 parent 35b348a commit 79c1c8d
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions shell/browser/api/electron_api_crash_reporter.cc
Expand Up @@ -86,26 +86,32 @@ const std::map<std::string, std::string>& GetGlobalCrashKeys() {
return GetGlobalCrashKeysMutable();
}

base::FilePath GetClientIdPath() {
base::FilePath path;
base::PathService::Get(electron::DIR_CRASH_DUMPS, &path);
return path.Append("client_id");
bool GetClientIdPath(base::FilePath* path) {
if (base::PathService::Get(electron::DIR_CRASH_DUMPS, path)) {
*path = path->Append("client_id");
return true;
}
return false;
}

std::string ReadClientId() {
base::ThreadRestrictions::ScopedAllowIO allow_io;
std::string client_id;
// "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".length == 36
if (!base::ReadFileToStringWithMaxSize(GetClientIdPath(), &client_id, 36) ||
client_id.size() != 36)
base::FilePath client_id_path;
if (GetClientIdPath(&client_id_path) &&
(!base::ReadFileToStringWithMaxSize(client_id_path, &client_id, 36) ||
client_id.size() != 36))
return std::string();
return client_id;
}

void WriteClientId(const std::string& client_id) {
DCHECK_EQ(client_id.size(), 36u);
base::ThreadRestrictions::ScopedAllowIO allow_io;
base::WriteFile(GetClientIdPath(), client_id.data(), client_id.size());
base::FilePath client_id_path;
if (GetClientIdPath(&client_id_path))
base::WriteFile(client_id_path, client_id.data(), client_id.size());
}

std::string GetClientId() {
Expand Down

0 comments on commit 79c1c8d

Please sign in to comment.