[CVE-2023-29469] Hashing of empty dict strings isn't deterministic
When given an empty string,
xmlDictComputeFastKey uses the first byte of the string to compute the hash value. Most of the time the strings are null-terminated. But it can happen that the string is part of a larger buffer and the byte is essentially random. This can lead to all kinds of logic or memory errors. For example, OSS-Fuzz reported a double-free caused by this bug.