diff --git a/NEWS b/NEWS index 738904249..f72f15838 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,8 @@ ver 0.22.7 (not yet released) - gme: support RSN files * storage - curl: don't use glibc extension +* database + - simple: fix database corruption bug * output - httpd: send header "Access-Control-Allow-Origin: *" - wasapi: add algorithm for finding usable audio format diff --git a/src/tag/Pool.cxx b/src/tag/Pool.cxx index e977c6784..e5a6d57f2 100644 --- a/src/tag/Pool.cxx +++ b/src/tag/Pool.cxx @@ -114,10 +114,7 @@ tag_pool_get_item(TagType type, StringView value) noexcept auto slot_p = tag_value_slot_p(type, value); for (auto slot = *slot_p; slot != nullptr; slot = slot->next) { if (slot->item.type == type && - /* strncmp() only works if there are no null - bytes, which FixTagString() has already ensured - at this point */ - strncmp(value.data, slot->item.value, value.size) == 0 && + value.Equals(slot->item.value) && slot->ref < TagPoolSlot::MAX_REF) { assert(slot->ref > 0); ++slot->ref;