tag_pool: use memcmp() instead of strcmp() for non-terminated string
The strings passed to tag_pool_get_item() are not null-terminated, and the caller passes the string length. Don't assume it is null-terminated anyway by using strcmp().
This commit is contained in:
parent
51894725ec
commit
86827fc63e
@ -101,7 +101,9 @@ tag_pool_get_item(enum tag_type type, const char *value, size_t length)
|
||||
slot_p = &slots[calc_hash_n(type, value, length) % NUM_SLOTS];
|
||||
for (slot = *slot_p; slot != NULL; slot = slot->next) {
|
||||
if (slot->item.type == type &&
|
||||
strcmp(value, slot->item.value) == 0 && slot->ref < 0xff) {
|
||||
length == strlen(slot->item.value) &&
|
||||
memcmp(value, slot->item.value, length) == 0 &&
|
||||
slot->ref < 0xff) {
|
||||
assert(slot->ref > 0);
|
||||
++slot->ref;
|
||||
return &slot->item;
|
||||
|
Loading…
Reference in New Issue
Block a user