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_comment(),
|
||||||
get_extension(),
|
get_extension(),
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
std::vector<char> the_forbidden_characters{'<', '>', ':', '"', '/', '\\', '|', '?', '*'};
|
std::vector<char> the_forbidden_characters{'<', '>', ':', '"', '/', '\\', '|', '?', '*'};
|
||||||
#else
|
#else
|
||||||
std::vector<char> the_forbidden_characters{'/'};
|
std::vector<char> the_forbidden_characters{'/'};
|
||||||
#endif
|
#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)
|
const std::vector<std::string*> data_members = {&data.title, &data.album, &data.artist, &data.track, &data.year, &data.genre, &data.comment, &data.extension};
|
||||||
static_cast<void>(std::remove_if(it->begin(), it->end(), [&c](char _c) { return c == _c; }));
|
|
||||||
|
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{
|
std::unordered_map<std::string, std::string> delim_map{
|
||||||
|
|
Loading…
Reference in a new issue