Merge pull request #637 from xiaobfly/master

fix LogCleaner::IsLogFromCurrentProject for filename_extension
This commit is contained in:
Sergiu Deitsch 2021-04-11 15:20:57 +02:00 committed by GitHub
commit 230da316c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1389,6 +1389,7 @@ bool LogCleaner::IsLogFromCurrentProject(const string& filepath,
// after: "/tmp/<base_filename>.<create_time>.<pid>"
string cleaned_base_filename;
size_t real_filepath_size = filepath.size();
for (size_t i = 0; i < base_filename.size(); ++i) {
const char& c = base_filename[i];
@ -1409,15 +1410,29 @@ bool LogCleaner::IsLogFromCurrentProject(const string& filepath,
// `cleaned_base_filename` in `filepath` if the user
// has set a custom filename extension.
if (!filename_extension.empty()) {
if (filepath.find(filename_extension) != cleaned_base_filename.size()) {
if (cleaned_base_filename.size() >= real_filepath_size) {
return false;
}
cleaned_base_filename += filename_extension;
// for origin version, `filename_extension` is middle of the `filepath`.
string ext = filepath.substr(cleaned_base_filename.size(), filename_extension.size());
if (ext == filename_extension) {
cleaned_base_filename += filename_extension;
}
else {
// for new version, `filename_extension` is right of the `filepath`.
if (filename_extension.size() >= real_filepath_size) {
return false;
}
real_filepath_size = filepath.size() - filename_extension.size();
if (filepath.substr(real_filepath_size) != filename_extension) {
return false;
}
}
}
// The characters after `cleaned_base_filename` should match the format:
// YYYYMMDD-HHMMSS.pid
for (size_t i = cleaned_base_filename.size(); i < filepath.size(); i++) {
for (size_t i = cleaned_base_filename.size(); i < real_filepath_size; i++) {
const char& c = filepath[i];
if (i <= cleaned_base_filename.size() + 7) { // 0 ~ 7 : YYYYMMDD