Opened 8 years ago
Closed 7 years ago
#11163 closed Bugs (fixed)
generator::set_default_messages_domain either crashes or have unexpected side effects
| Reported by: | Owned by: | Artyom Beilis | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | locale |
| Version: | Boost 1.57.0 | Severity: | Problem |
| Keywords: | crash | Cc: |
Description
Calling generator::set_default_messages_domain before calling generator::add_messages_domain using the same domain results in calling vector::erase using an invalid iterator, which results in a crash.
Calling generator::set_default_messages_domain after calling generator::add_messages_domain using the same domain results in adding the domain twice to the vector.
This is due to using operator== instead of operator!= when comparing iterator to vector::end().
Fix:
void generator::set_default_messages_domain(std::string const &domain)
{
std::vector<std::string>::iterator p;
if((p=std::find(d->domains.begin(),d->domains.end(),domain)) != d->domains.end()) {
d->domains.erase(p);
}
d->domains.insert(d->domains.begin(),domain);
}
Note:
See TracTickets
for help on using tickets.

This issue fixed? The issue is listed to Boost 1.60.0 release-note.