Fix a potential segmentation fault.
This commit is contained in:
parent
e6a371bf57
commit
5a121fc062
|
@ -112,15 +112,18 @@ void get_metadata_from_file(const Settings& settings, const std::string& format,
|
|||
get_comment(),
|
||||
get_extension(),
|
||||
};
|
||||
|
||||
#ifdef _WIN32
|
||||
std::vector<char> the_forbidden_characters{'<', '>', ':', '"', '/', '\\', '|', '?', '*'};
|
||||
#else
|
||||
std::vector<char> the_forbidden_characters{'/'};
|
||||
#endif
|
||||
for (const auto& it : {&data.title, &data.album, &data.artist, &data.track, &data.year, &data.genre, &data.comment, &data.extension}) {
|
||||
for (const auto& c : the_forbidden_characters)
|
||||
static_cast<void>(std::remove_if(it->begin(), it->end(), [&c](char _c) { return c == _c; }));
|
||||
|
||||
const std::vector<std::string*> data_members = {&data.title, &data.album, &data.artist, &data.track, &data.year, &data.genre, &data.comment, &data.extension};
|
||||
|
||||
for (const auto& it : data_members) {
|
||||
for (const auto& c : the_forbidden_characters) {
|
||||
it->erase(std::remove_if(it->begin(), it->end(), [&c](char _c) { return c == _c; }), it->end());
|
||||
}
|
||||
}
|
||||
|
||||
std::unordered_map<std::string, std::string> delim_map{
|
||||
|
|
Loading…
Reference in a new issue