diff --git a/dict.c b/dict.c index 5f71d55..a9ff53e 100644 --- a/dict.c +++ b/dict.c @@ -249,7 +249,7 @@ xmlDictAddString(xmlDictPtr dict, const xmlChar *name, unsigned int namelen) { #endif pool = dict->strings; while (pool != NULL) { - if (pool->end - pool->free > namelen) + if (pool->end > pool->free && (size_t)(pool->end - pool->free) > namelen) goto found_pool; if (pool->size > size) size = pool->size; limit += pool->size; @@ -317,7 +317,8 @@ xmlDictAddQString(xmlDictPtr dict, const xmlChar *prefix, unsigned int plen, #endif pool = dict->strings; while (pool != NULL) { - if (pool->end - pool->free > namelen + plen + 1) + if (pool->end > pool->free && + (size_t)(pool->end - pool->free) > namelen + plen + 1) goto found_pool; if (pool->size > size) size = pool->size; limit += pool->size;