From de00a77e1df3ecd357835586abec8508f7c3cc47 Mon Sep 17 00:00:00 2001 From: Vlad Tsyrklevich Date: Wed, 8 Nov 2017 15:28:19 -0800 Subject: [PATCH 2/2] Introduce xmlPosixStrdup and update xmlMemStrdup Introduce xmlPosixStrdup, an internal strdup implementation matching the POSIX strdup type signature, and update xmlMemStrdup to use it. --- globals.c | 2 +- include/libxml/xmlstring.h | 2 ++ xmlstring.c | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/globals.c b/globals.c index e351b03f..96865d68 100644 --- a/globals.c +++ b/globals.c @@ -131,7 +131,7 @@ xmlReallocFunc xmlRealloc = (xmlReallocFunc) realloc; * * Returns the copy of the string or NULL in case of error */ -xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup; +xmlStrdupFunc xmlMemStrdup = xmlPosixStrdup; #endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */ #include diff --git a/include/libxml/xmlstring.h b/include/libxml/xmlstring.h index 2d0b2d16..df77c3ac 100644 --- a/include/libxml/xmlstring.h +++ b/include/libxml/xmlstring.h @@ -47,6 +47,8 @@ XMLPUBFUN xmlChar * XMLCALL int len); XMLPUBFUN xmlChar * XMLCALL xmlCharStrdup (const char *cur); +XMLPUBFUN char * XMLCALL + xmlPosixStrdup (const char *cur); XMLPUBFUN xmlChar * XMLCALL xmlStrsub (const xmlChar *str, int start, diff --git a/xmlstring.c b/xmlstring.c index 8d2e06f6..547f9577 100644 --- a/xmlstring.c +++ b/xmlstring.c @@ -118,6 +118,20 @@ xmlCharStrdup(const char *cur) { return(xmlCharStrndup(cur, p - cur)); } +/** + * xmlPosixStrdup + * @cur: the input char * + * + * a strdup implementation with a type signature matching POSIX + * + * Returns a new xmlChar * or NULL + */ + +char * +xmlPosixStrdup(const char *cur) { + return((char*)xmlCharStrdup(cur)); +} + /** * xmlStrcmp: * @str1: the first xmlChar * -- 2.15.0.448.gf294e3d99a-goog