summaryrefslogtreecommitdiff
path: root/xmlreader.c
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2017-11-09 16:42:47 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2017-11-09 16:42:47 +0100
commite03f0a199a67017b2f8052354cf732b2b4cae787 (patch)
treea12b2436ef7a2ad0fcdacd69cb6996bd0dd268d0 /xmlreader.c
parent71462a600608f5263e3907eef8d685571abeb1b9 (diff)
downloadlibxml2-e03f0a199a67017b2f8052354cf732b2b4cae787.tar.gz
Fix hash callback signatures
Make sure that all parameters and return values of hash callback functions exactly match the callback function type. This is required to pass clang's Control Flow Integrity checks and to allow compilation to asm.js with Emscripten. Fixes bug 784861.
Diffstat (limited to 'xmlreader.c')
-rw-r--r--xmlreader.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/xmlreader.c b/xmlreader.c
index 34c4c6bc..4053269b 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -491,6 +491,11 @@ xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur) {
}
}
+static void
+xmlTextReaderFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFreeID((xmlIDPtr) id);
+}
+
/**
* xmlTextReaderFreeIDTable:
* @table: An id table
@@ -499,7 +504,7 @@ xmlTextReaderFreeNode(xmlTextReaderPtr reader, xmlNodePtr cur) {
*/
static void
xmlTextReaderFreeIDTable(xmlIDTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
+ xmlHashFree(table, xmlTextReaderFreeIDTableEntry);
}
/**