Fixes access violation

- Fixes access violation when setting empty stringlist on integer
  properties in mp4 tag
- Add a unit test that validates the fix.
This commit is contained in:
Erwin Jansen
2015-10-09 22:11:27 -07:00
parent ab30ec3a6f
commit 29be00dc59
2 changed files with 11 additions and 3 deletions

View File

@ -917,7 +917,7 @@ PropertyMap MP4::Tag::setProperties(const PropertyMap &props)
for(; it != props.end(); ++it) {
if(reverseKeyMap.contains(it->first)) {
String name = reverseKeyMap[it->first];
if(it->first == "TRACKNUMBER" || it->first == "DISCNUMBER") {
if((it->first == "TRACKNUMBER" || it->first == "DISCNUMBER") && it->second.size() > 0) {
int first = 0, second = 0;
StringList parts = StringList::split(it->second.front(), "/");
if(parts.size() > 0) {
@ -928,11 +928,11 @@ PropertyMap MP4::Tag::setProperties(const PropertyMap &props)
d->items[name] = MP4::Item(first, second);
}
}
else if(it->first == "BPM") {
else if(it->first == "BPM" && it->second.size() > 0) {
int value = it->second.front().toInt();
d->items[name] = MP4::Item(value);
}
else if(it->first == "COMPILATION") {
else if(it->first == "COMPILATION" && it->second.size() > 0) {
bool value = (it->second.front().toInt() != 0);
d->items[name] = MP4::Item(value);
}