You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1068 lines
37 KiB
1068 lines
37 KiB
From 671658873655a1bb1e478894c0c71f9c98968fff Mon Sep 17 00:00:00 2001 |
|
From: David Kilzer <ddkilzer@webkit.org> |
|
Date: Fri, 13 May 2016 15:13:17 +0800 |
|
Subject: [PATCH] Fix some format string warnings with possible format string |
|
vulnerability |
|
To: libvir-list@redhat.com |
|
|
|
For https://bugzilla.gnome.org/show_bug.cgi?id=761029 |
|
|
|
Decorate every method in libxml2 with the appropriate |
|
LIBXML_ATTR_FORMAT(fmt,args) macro and add some cleanups |
|
following the reports. |
|
|
|
Signed-off-by: Daniel Veillard <veillard@redhat.com> |
|
--- |
|
HTMLparser.c | 4 +-- |
|
SAX2.c | 12 ++++---- |
|
catalog.c | 2 +- |
|
configure.in | 4 +-- |
|
debugXML.c | 4 +-- |
|
encoding.c | 2 +- |
|
entities.c | 2 +- |
|
error.c | 2 +- |
|
include/libxml/parserInternals.h | 2 +- |
|
include/libxml/xmlerror.h | 2 +- |
|
include/libxml/xmlstring.h | 8 ++--- |
|
libxml.h | 2 +- |
|
parser.c | 37 +++++++++++----------- |
|
parserInternals.c | 4 +-- |
|
relaxng.c | 4 +-- |
|
schematron.c | 2 +- |
|
testModule.c | 2 +- |
|
valid.c | 8 ++--- |
|
xinclude.c | 4 +-- |
|
xmlIO.c | 14 ++++----- |
|
xmllint.c | 20 ++++++------ |
|
xmlreader.c | 16 +++++++--- |
|
xmlschemas.c | 66 ++++++++++++++++++++-------------------- |
|
xmlstring.c | 4 +-- |
|
xmlwriter.c | 4 +-- |
|
xpath.c | 2 +- |
|
xpointer.c | 2 +- |
|
27 files changed, 121 insertions(+), 114 deletions(-) |
|
|
|
diff --git a/HTMLparser.c b/HTMLparser.c |
|
index e7d802d..cd5ab05 100644 |
|
--- a/HTMLparser.c |
|
+++ b/HTMLparser.c |
|
@@ -105,7 +105,7 @@ htmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra) |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
htmlParseErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2) |
|
{ |
|
@@ -132,7 +132,7 @@ htmlParseErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
htmlParseErrInt(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, int val) |
|
{ |
|
diff --git a/SAX2.c b/SAX2.c |
|
index 4adf202..d90f449 100644 |
|
--- a/SAX2.c |
|
+++ b/SAX2.c |
|
@@ -55,7 +55,7 @@ |
|
* @ctxt: an XML validation parser context |
|
* @msg: a string to accompany the error message |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(2,0) |
|
xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) { |
|
xmlStructuredErrorFunc schannel = NULL; |
|
const char *str1 = "out of memory\n"; |
|
@@ -93,7 +93,7 @@ xmlSAX2ErrMemory(xmlParserCtxtPtr ctxt, const char *msg) { |
|
* |
|
* Handle a validation error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlErrValid(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const char *str1, const char *str2) |
|
{ |
|
@@ -133,7 +133,7 @@ xmlErrValid(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2) |
|
{ |
|
@@ -164,7 +164,7 @@ xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a parser warning |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1) |
|
{ |
|
@@ -189,7 +189,7 @@ xmlWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a namespace error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2) |
|
{ |
|
@@ -213,7 +213,7 @@ xmlNsErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a namespace warning |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlNsWarnMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2) |
|
{ |
|
diff --git a/catalog.c b/catalog.c |
|
index 8e34cd2..5c9f6de 100644 |
|
--- a/catalog.c |
|
+++ b/catalog.c |
|
@@ -238,7 +238,7 @@ xmlCatalogErrMemory(const char *extra) |
|
* |
|
* Handle a catalog error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlCatalogErr(xmlCatalogEntryPtr catal, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2, |
|
const xmlChar *str3) |
|
diff --git a/configure.in b/configure.in |
|
index d449b11..1dee5ba 100644 |
|
--- a/configure.in |
|
+++ b/configure.in |
|
@@ -705,7 +705,7 @@ else |
|
fi |
|
|
|
# warnings we'd like to see |
|
- CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls" |
|
+ CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls" |
|
# warnings we'd like to supress |
|
CFLAGS="${CFLAGS} -Wno-long-long" |
|
case "${host}" in |
|
@@ -920,7 +920,7 @@ if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XML" ]] || \ |
|
fi |
|
fi |
|
if test "${GCC}" = "yes" ; then |
|
- CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall" |
|
+ CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall" |
|
fi |
|
STATIC_BINARIES="-static" |
|
dnl -Wcast-qual -ansi |
|
diff --git a/debugXML.c b/debugXML.c |
|
index c8efe6a..b6e7b2f 100644 |
|
--- a/debugXML.c |
|
+++ b/debugXML.c |
|
@@ -164,7 +164,7 @@ xmlDebugErr(xmlDebugCtxtPtr ctxt, int error, const char *msg) |
|
NULL, NULL, NULL, 0, 0, |
|
"%s", msg); |
|
} |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlDebugErr2(xmlDebugCtxtPtr ctxt, int error, const char *msg, int extra) |
|
{ |
|
ctxt->errors++; |
|
@@ -174,7 +174,7 @@ xmlDebugErr2(xmlDebugCtxtPtr ctxt, int error, const char *msg, int extra) |
|
NULL, NULL, NULL, 0, 0, |
|
msg, extra); |
|
} |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlDebugErr3(xmlDebugCtxtPtr ctxt, int error, const char *msg, const char *extra) |
|
{ |
|
ctxt->errors++; |
|
diff --git a/encoding.c b/encoding.c |
|
index 7330e90..dd62b3a 100644 |
|
--- a/encoding.c |
|
+++ b/encoding.c |
|
@@ -93,7 +93,7 @@ xmlEncodingErrMemory(const char *extra) |
|
* |
|
* n encoding error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(2,0) |
|
xmlEncodingErr(xmlParserErrors error, const char *msg, const char *val) |
|
{ |
|
__xmlRaiseError(NULL, NULL, NULL, NULL, NULL, |
|
diff --git a/entities.c b/entities.c |
|
index 0c484a7..f330959 100644 |
|
--- a/entities.c |
|
+++ b/entities.c |
|
@@ -83,7 +83,7 @@ xmlEntitiesErrMemory(const char *extra) |
|
* |
|
* Handle an out of memory condition |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(2,0) |
|
xmlEntitiesErr(xmlParserErrors code, const char *msg) |
|
{ |
|
__xmlSimpleError(XML_FROM_TREE, code, NULL, msg, NULL); |
|
diff --git a/error.c b/error.c |
|
index 9c45040..2e8dfce 100644 |
|
--- a/error.c |
|
+++ b/error.c |
|
@@ -18,7 +18,7 @@ |
|
|
|
void XMLCDECL xmlGenericErrorDefaultFunc (void *ctx ATTRIBUTE_UNUSED, |
|
const char *msg, |
|
- ...); |
|
+ ...) LIBXML_ATTR_FORMAT(2,3); |
|
|
|
#define XML_GET_VAR_STR(msg, str) { \ |
|
int size, prev_size = -1; \ |
|
diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h |
|
index 6065320..f30fc68 100644 |
|
--- a/include/libxml/parserInternals.h |
|
+++ b/include/libxml/parserInternals.h |
|
@@ -351,7 +351,7 @@ XMLPUBFUN void XMLCALL |
|
xmlParserErrors xmlerr, |
|
const char *msg, |
|
const xmlChar * str1, |
|
- const xmlChar * str2); |
|
+ const xmlChar * str2) LIBXML_ATTR_FORMAT(3,0); |
|
#endif |
|
|
|
/** |
|
diff --git a/include/libxml/xmlerror.h b/include/libxml/xmlerror.h |
|
index 537a396..acd2cd7 100644 |
|
--- a/include/libxml/xmlerror.h |
|
+++ b/include/libxml/xmlerror.h |
|
@@ -937,7 +937,7 @@ XMLPUBFUN void XMLCALL |
|
int code, |
|
xmlNodePtr node, |
|
const char *msg, |
|
- const char *extra); |
|
+ const char *extra) LIBXML_ATTR_FORMAT(4,0); |
|
#endif |
|
#ifdef __cplusplus |
|
} |
|
diff --git a/include/libxml/xmlstring.h b/include/libxml/xmlstring.h |
|
index 2036236..2d0b2d1 100644 |
|
--- a/include/libxml/xmlstring.h |
|
+++ b/include/libxml/xmlstring.h |
|
@@ -97,13 +97,13 @@ XMLPUBFUN xmlChar * XMLCALL |
|
XMLPUBFUN int XMLCALL |
|
xmlStrPrintf (xmlChar *buf, |
|
int len, |
|
- const xmlChar *msg, |
|
- ...); |
|
+ const char *msg, |
|
+ ...) LIBXML_ATTR_FORMAT(3,4); |
|
XMLPUBFUN int XMLCALL |
|
xmlStrVPrintf (xmlChar *buf, |
|
int len, |
|
- const xmlChar *msg, |
|
- va_list ap); |
|
+ const char *msg, |
|
+ va_list ap) LIBXML_ATTR_FORMAT(3,0); |
|
|
|
XMLPUBFUN int XMLCALL |
|
xmlGetUTF8Char (const unsigned char *utf, |
|
diff --git a/libxml.h b/libxml.h |
|
index 2da9044..4558b70 100644 |
|
--- a/libxml.h |
|
+++ b/libxml.h |
|
@@ -68,7 +68,7 @@ extern int __xmlRegisterCallbacks; |
|
* internal error reporting routines, shared but not partof the API. |
|
*/ |
|
void __xmlIOErr(int domain, int code, const char *extra); |
|
-void __xmlLoaderErr(void *ctx, const char *msg, const char *filename); |
|
+void __xmlLoaderErr(void *ctx, const char *msg, const char *filename) LIBXML_ATTR_FORMAT(2,0); |
|
#ifdef LIBXML_HTML_ENABLED |
|
/* |
|
* internal function of HTML parser needed for xmlParseInNodeContext |
|
diff --git a/parser.c b/parser.c |
|
index 2ae44c5..7413596 100644 |
|
--- a/parser.c |
|
+++ b/parser.c |
|
@@ -350,7 +350,6 @@ static void |
|
xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info) |
|
{ |
|
const char *errmsg; |
|
- char errstr[129] = ""; |
|
|
|
if ((ctxt != NULL) && (ctxt->disableSAX != 0) && |
|
(ctxt->instate == XML_PARSER_EOF)) |
|
@@ -537,15 +536,17 @@ xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info) |
|
default: |
|
errmsg = "Unregistered error message"; |
|
} |
|
- if (info == NULL) |
|
- snprintf(errstr, 128, "%s\n", errmsg); |
|
- else |
|
- snprintf(errstr, 128, "%s: %%s\n", errmsg); |
|
if (ctxt != NULL) |
|
ctxt->errNo = error; |
|
- __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error, |
|
- XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, &errstr[0], |
|
- info); |
|
+ if (info == NULL) { |
|
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error, |
|
+ XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, "%s\n", |
|
+ errmsg); |
|
+ } else { |
|
+ __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER, error, |
|
+ XML_ERR_FATAL, NULL, 0, info, NULL, NULL, 0, 0, "%s: %s\n", |
|
+ errmsg, info); |
|
+ } |
|
if (ctxt != NULL) { |
|
ctxt->wellFormed = 0; |
|
if (ctxt->recovery == 0) |
|
@@ -561,7 +562,7 @@ xmlFatalErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, const char *info) |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg) |
|
{ |
|
@@ -589,7 +590,7 @@ xmlFatalErrMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a warning. |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2) |
|
{ |
|
@@ -627,7 +628,7 @@ xmlWarningMsg(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a validity error. |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlValidityError(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, const xmlChar *str2) |
|
{ |
|
@@ -667,7 +668,7 @@ xmlValidityError(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, int val) |
|
{ |
|
@@ -697,7 +698,7 @@ xmlFatalErrMsgInt(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar *str1, int val, |
|
const xmlChar *str2) |
|
@@ -727,7 +728,7 @@ xmlFatalErrMsgStrIntStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar * val) |
|
{ |
|
@@ -756,7 +757,7 @@ xmlFatalErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a non fatal parser error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const xmlChar * val) |
|
{ |
|
@@ -781,7 +782,7 @@ xmlErrMsgStr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a fatal parser error, i.e. violating Well-Formedness constraints |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlNsErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, |
|
const xmlChar * info1, const xmlChar * info2, |
|
@@ -810,7 +811,7 @@ xmlNsErr(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a namespace warning error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlNsWarn(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, |
|
const xmlChar * info1, const xmlChar * info2, |
|
@@ -5510,7 +5511,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) { |
|
skipped = SKIP_BLANKS; |
|
if (skipped == 0) { |
|
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED, |
|
- "Space required after '%'\n"); |
|
+ "Space required after '%%'\n"); |
|
} |
|
isParameter = 1; |
|
} |
|
diff --git a/parserInternals.c b/parserInternals.c |
|
index 341d6a1..aac6420 100644 |
|
--- a/parserInternals.c |
|
+++ b/parserInternals.c |
|
@@ -169,7 +169,7 @@ __xmlErrEncoding(xmlParserCtxtPtr ctxt, xmlParserErrors xmlerr, |
|
* |
|
* Handle an internal error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(2,0) |
|
xmlErrInternal(xmlParserCtxtPtr ctxt, const char *msg, const xmlChar * str) |
|
{ |
|
if ((ctxt != NULL) && (ctxt->disableSAX != 0) && |
|
@@ -197,7 +197,7 @@ xmlErrInternal(xmlParserCtxtPtr ctxt, const char *msg, const xmlChar * str) |
|
* |
|
* n encoding error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlErrEncodingInt(xmlParserCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, int val) |
|
{ |
|
diff --git a/relaxng.c b/relaxng.c |
|
index 370e314..b531081 100644 |
|
--- a/relaxng.c |
|
+++ b/relaxng.c |
|
@@ -507,7 +507,7 @@ xmlRngVErrMemory(xmlRelaxNGValidCtxtPtr ctxt, const char *extra) |
|
* |
|
* Handle a Relax NG Parsing error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlRngPErr(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar * str1, const xmlChar * str2) |
|
{ |
|
@@ -541,7 +541,7 @@ xmlRngPErr(xmlRelaxNGParserCtxtPtr ctxt, xmlNodePtr node, int error, |
|
* |
|
* Handle a Relax NG Validation error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlRngVErr(xmlRelaxNGValidCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar * str1, const xmlChar * str2) |
|
{ |
|
diff --git a/schematron.c b/schematron.c |
|
index 537b868..6f80c5c 100644 |
|
--- a/schematron.c |
|
+++ b/schematron.c |
|
@@ -243,7 +243,7 @@ xmlSchematronPErrMemory(xmlSchematronParserCtxtPtr ctxt, |
|
* |
|
* Handle a parser error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlSchematronPErr(xmlSchematronParserCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar * str1, const xmlChar * str2) |
|
{ |
|
diff --git a/testModule.c b/testModule.c |
|
index e399f5c..77b7ba1 100644 |
|
--- a/testModule.c |
|
+++ b/testModule.c |
|
@@ -47,7 +47,7 @@ int main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { |
|
|
|
/* build the module filename, and confirm the module exists */ |
|
xmlStrPrintf(filename, sizeof(filename), |
|
- (const xmlChar*) "%s/testdso%s", |
|
+ "%s/testdso%s", |
|
(const xmlChar*)MODULE_PATH, |
|
(const xmlChar*)LIBXML_MODULE_EXTENSION); |
|
|
|
diff --git a/valid.c b/valid.c |
|
index 6e53a76..657e3c8 100644 |
|
--- a/valid.c |
|
+++ b/valid.c |
|
@@ -93,7 +93,7 @@ xmlVErrMemory(xmlValidCtxtPtr ctxt, const char *extra) |
|
* |
|
* Handle a validation error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlErrValid(xmlValidCtxtPtr ctxt, xmlParserErrors error, |
|
const char *msg, const char *extra) |
|
{ |
|
@@ -137,7 +137,7 @@ xmlErrValid(xmlValidCtxtPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a validation error, provide contextual informations |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlErrValidNode(xmlValidCtxtPtr ctxt, |
|
xmlNodePtr node, xmlParserErrors error, |
|
const char *msg, const xmlChar * str1, |
|
@@ -180,7 +180,7 @@ xmlErrValidNode(xmlValidCtxtPtr ctxt, |
|
* |
|
* Handle a validation error, provide contextual informations |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlErrValidNodeNr(xmlValidCtxtPtr ctxt, |
|
xmlNodePtr node, xmlParserErrors error, |
|
const char *msg, const xmlChar * str1, |
|
@@ -221,7 +221,7 @@ xmlErrValidNodeNr(xmlValidCtxtPtr ctxt, |
|
* |
|
* Handle a validation error, provide contextual information |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlErrValidWarning(xmlValidCtxtPtr ctxt, |
|
xmlNodePtr node, xmlParserErrors error, |
|
const char *msg, const xmlChar * str1, |
|
diff --git a/xinclude.c b/xinclude.c |
|
index ace005b..f56c7c4 100644 |
|
--- a/xinclude.c |
|
+++ b/xinclude.c |
|
@@ -124,7 +124,7 @@ xmlXIncludeErrMemory(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, |
|
* |
|
* Handle an XInclude error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlXIncludeErr(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar *extra) |
|
{ |
|
@@ -146,7 +146,7 @@ xmlXIncludeErr(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error, |
|
* |
|
* Emit an XInclude warning. |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlXIncludeWarn(xmlXIncludeCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar *extra) |
|
{ |
|
diff --git a/xmlIO.c b/xmlIO.c |
|
index fc4e111..90a93e3 100644 |
|
--- a/xmlIO.c |
|
+++ b/xmlIO.c |
|
@@ -1590,7 +1590,7 @@ xmlCreateZMemBuff( int compression ) { |
|
xmlFreeZMemBuff( buff ); |
|
buff = NULL; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlCreateZMemBuff: %s %d\n", |
|
+ "xmlCreateZMemBuff: %s %d\n", |
|
"Error initializing compression context. ZLIB error:", |
|
z_err ); |
|
xmlIOErr(XML_IO_WRITE, (const char *) msg); |
|
@@ -1658,7 +1658,7 @@ xmlZMemBuffExtend( xmlZMemBuffPtr buff, size_t ext_amt ) { |
|
else { |
|
xmlChar msg[500]; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlZMemBuffExtend: %s %lu bytes.\n", |
|
+ "xmlZMemBuffExtend: %s %lu bytes.\n", |
|
"Allocation failure extending output buffer to", |
|
new_size ); |
|
xmlIOErr(XML_IO_WRITE, (const char *) msg); |
|
@@ -1704,7 +1704,7 @@ xmlZMemBuffAppend( xmlZMemBuffPtr buff, const char * src, int len ) { |
|
if ( z_err != Z_OK ) { |
|
xmlChar msg[500]; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlZMemBuffAppend: %s %d %s - %d", |
|
+ "xmlZMemBuffAppend: %s %d %s - %d", |
|
"Compression error while appending", |
|
len, "bytes to buffer. ZLIB error", z_err ); |
|
xmlIOErr(XML_IO_WRITE, (const char *) msg); |
|
@@ -1777,7 +1777,7 @@ xmlZMemBuffGetContent( xmlZMemBuffPtr buff, char ** data_ref ) { |
|
else { |
|
xmlChar msg[500]; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlZMemBuffGetContent: %s - %d\n", |
|
+ "xmlZMemBuffGetContent: %s - %d\n", |
|
"Error flushing zlib buffers. Error code", z_err ); |
|
xmlIOErr(XML_IO_WRITE, (const char *) msg); |
|
} |
|
@@ -1982,7 +1982,7 @@ xmlIOHTTPWrite( void * context, const char * buffer, int len ) { |
|
if ( len < 0 ) { |
|
xmlChar msg[500]; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlIOHTTPWrite: %s\n%s '%s'.\n", |
|
+ "xmlIOHTTPWrite: %s\n%s '%s'.\n", |
|
"Error appending to internal buffer.", |
|
"Error sending document to URI", |
|
ctxt->uri ); |
|
@@ -2054,7 +2054,7 @@ xmlIOHTTPCloseWrite( void * context, const char * http_mthd ) { |
|
if ( http_content == NULL ) { |
|
xmlChar msg[500]; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlIOHTTPCloseWrite: %s '%s' %s '%s'.\n", |
|
+ "xmlIOHTTPCloseWrite: %s '%s' %s '%s'.\n", |
|
"Error retrieving content.\nUnable to", |
|
http_mthd, "data to URI", ctxt->uri ); |
|
xmlIOErr(XML_IO_WRITE, (const char *) msg); |
|
@@ -2126,7 +2126,7 @@ xmlIOHTTPCloseWrite( void * context, const char * http_mthd ) { |
|
else { |
|
xmlChar msg[500]; |
|
xmlStrPrintf(msg, 500, |
|
- (const xmlChar *) "xmlIOHTTPCloseWrite: HTTP '%s' of %d %s\n'%s' %s %d\n", |
|
+ "xmlIOHTTPCloseWrite: HTTP '%s' of %d %s\n'%s' %s %d\n", |
|
http_mthd, content_lgth, |
|
"bytes to URI", ctxt->uri, |
|
"failed. HTTP return code:", http_rtn ); |
|
diff --git a/xmllint.c b/xmllint.c |
|
index 26d8db1..85552cf 100644 |
|
--- a/xmllint.c |
|
+++ b/xmllint.c |
|
@@ -449,7 +449,7 @@ startTimer(void) |
|
* message about the timing performed; format is a printf |
|
* type argument |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(1,2) |
|
endTimer(const char *fmt, ...) |
|
{ |
|
long msec; |
|
@@ -485,7 +485,7 @@ startTimer(void) |
|
{ |
|
begin = clock(); |
|
} |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(1,2) |
|
endTimer(const char *fmt, ...) |
|
{ |
|
long msec; |
|
@@ -514,7 +514,7 @@ startTimer(void) |
|
* Do nothing |
|
*/ |
|
} |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(1,2) |
|
endTimer(char *format, ...) |
|
{ |
|
/* |
|
@@ -634,7 +634,7 @@ xmlHTMLPrintFileContext(xmlParserInputPtr input) { |
|
* Display and format an error messages, gives file, line, position and |
|
* extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
xmlHTMLError(void *ctx, const char *msg, ...) |
|
{ |
|
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; |
|
@@ -671,7 +671,7 @@ xmlHTMLError(void *ctx, const char *msg, ...) |
|
* Display and format a warning messages, gives file, line, position and |
|
* extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
xmlHTMLWarning(void *ctx, const char *msg, ...) |
|
{ |
|
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; |
|
@@ -709,7 +709,7 @@ xmlHTMLWarning(void *ctx, const char *msg, ...) |
|
* Display and format an validity error messages, gives file, |
|
* line, position and extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
xmlHTMLValidityError(void *ctx, const char *msg, ...) |
|
{ |
|
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; |
|
@@ -746,7 +746,7 @@ xmlHTMLValidityError(void *ctx, const char *msg, ...) |
|
* Display and format a validity warning messages, gives file, line, |
|
* position and extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
xmlHTMLValidityWarning(void *ctx, const char *msg, ...) |
|
{ |
|
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx; |
|
@@ -1410,7 +1410,7 @@ commentDebug(void *ctx ATTRIBUTE_UNUSED, const xmlChar *value) |
|
* Display and format a warning messages, gives file, line, position and |
|
* extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) |
|
{ |
|
va_list args; |
|
@@ -1433,7 +1433,7 @@ warningDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) |
|
* Display and format a error messages, gives file, line, position and |
|
* extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) |
|
{ |
|
va_list args; |
|
@@ -1456,7 +1456,7 @@ errorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) |
|
* Display and format a fatalError messages, gives file, line, position and |
|
* extra parameters. |
|
*/ |
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
fatalErrorDebug(void *ctx ATTRIBUTE_UNUSED, const char *msg, ...) |
|
{ |
|
va_list args; |
|
diff --git a/xmlreader.c b/xmlreader.c |
|
index 4fabaa9..d72129b 100644 |
|
--- a/xmlreader.c |
|
+++ b/xmlreader.c |
|
@@ -4036,13 +4036,19 @@ xmlTextReaderCurrentDoc(xmlTextReaderPtr reader) { |
|
} |
|
|
|
#ifdef LIBXML_SCHEMAS_ENABLED |
|
-static char *xmlTextReaderBuildMessage(const char *msg, va_list ap); |
|
+static char *xmlTextReaderBuildMessage(const char *msg, va_list ap) LIBXML_ATTR_FORMAT(1,0); |
|
|
|
static void XMLCDECL |
|
-xmlTextReaderValidityError(void *ctxt, const char *msg, ...); |
|
+xmlTextReaderValidityError(void *ctxt, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); |
|
|
|
static void XMLCDECL |
|
-xmlTextReaderValidityWarning(void *ctxt, const char *msg, ...); |
|
+xmlTextReaderValidityWarning(void *ctxt, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); |
|
+ |
|
+static void XMLCDECL |
|
+xmlTextReaderValidityErrorRelay(void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); |
|
+ |
|
+static void XMLCDECL |
|
+xmlTextReaderValidityWarningRelay(void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); |
|
|
|
static void XMLCDECL |
|
xmlTextReaderValidityErrorRelay(void *ctx, const char *msg, ...) |
|
@@ -4836,7 +4842,7 @@ xmlTextReaderStructuredError(void *ctxt, xmlErrorPtr error) |
|
} |
|
} |
|
|
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
xmlTextReaderError(void *ctxt, const char *msg, ...) |
|
{ |
|
va_list ap; |
|
@@ -4849,7 +4855,7 @@ xmlTextReaderError(void *ctxt, const char *msg, ...) |
|
|
|
} |
|
|
|
-static void XMLCDECL |
|
+static void XMLCDECL LIBXML_ATTR_FORMAT(2,3) |
|
xmlTextReaderWarning(void *ctxt, const char *msg, ...) |
|
{ |
|
va_list ap; |
|
diff --git a/xmlschemas.c b/xmlschemas.c |
|
index 121533f..398cdd8 100644 |
|
--- a/xmlschemas.c |
|
+++ b/xmlschemas.c |
|
@@ -1085,7 +1085,7 @@ xmlSchemaGetUnionSimpleTypeMemberTypes(xmlSchemaTypePtr type); |
|
static void |
|
xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt, |
|
const char *funcName, |
|
- const char *message); |
|
+ const char *message) LIBXML_ATTR_FORMAT(3,0); |
|
static int |
|
xmlSchemaCheckCOSSTDerivedOK(xmlSchemaAbstractCtxtPtr ctxt, |
|
xmlSchemaTypePtr type, |
|
@@ -1889,7 +1889,7 @@ xmlSchemaPErrMemory(xmlSchemaParserCtxtPtr ctxt, |
|
* |
|
* Handle a parser error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlSchemaPErr(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const char *msg, const xmlChar * str1, const xmlChar * str2) |
|
{ |
|
@@ -1922,7 +1922,7 @@ xmlSchemaPErr(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error, |
|
* |
|
* Handle a parser error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaPErr2(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, |
|
xmlNodePtr child, int error, |
|
const char *msg, const xmlChar * str1, const xmlChar * str2) |
|
@@ -1951,7 +1951,7 @@ xmlSchemaPErr2(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, |
|
* |
|
* Handle a parser error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(7,0) |
|
xmlSchemaPErrExt(xmlSchemaParserCtxtPtr ctxt, xmlNodePtr node, int error, |
|
const xmlChar * strData1, const xmlChar * strData2, |
|
const xmlChar * strData3, const char *msg, const xmlChar * str1, |
|
@@ -2002,7 +2002,7 @@ xmlSchemaVErrMemory(xmlSchemaValidCtxtPtr ctxt, |
|
extra); |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(2,0) |
|
xmlSchemaPSimpleInternalErr(xmlNodePtr node, |
|
const char *msg, const xmlChar *str) |
|
{ |
|
@@ -2013,18 +2013,21 @@ xmlSchemaPSimpleInternalErr(xmlNodePtr node, |
|
#define WXS_ERROR_TYPE_ERROR 1 |
|
#define WXS_ERROR_TYPE_WARNING 2 |
|
/** |
|
- * xmlSchemaErr3: |
|
+ * xmlSchemaErr4Line: |
|
* @ctxt: the validation context |
|
- * @node: the context node |
|
+ * @errorLevel: the error level |
|
* @error: the error code |
|
+ * @node: the context node |
|
+ * @line: the line number |
|
* @msg: the error message |
|
* @str1: extra data |
|
* @str2: extra data |
|
* @str3: extra data |
|
+ * @str4: extra data |
|
* |
|
* Handle a validation error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(6,0) |
|
xmlSchemaErr4Line(xmlSchemaAbstractCtxtPtr ctxt, |
|
xmlErrorLevel errorLevel, |
|
int error, xmlNodePtr node, int line, const char *msg, |
|
@@ -2137,7 +2140,7 @@ xmlSchemaErr4Line(xmlSchemaAbstractCtxtPtr ctxt, |
|
* |
|
* Handle a validation error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlSchemaErr3(xmlSchemaAbstractCtxtPtr actxt, |
|
int error, xmlNodePtr node, const char *msg, |
|
const xmlChar *str1, const xmlChar *str2, const xmlChar *str3) |
|
@@ -2146,7 +2149,7 @@ xmlSchemaErr3(xmlSchemaAbstractCtxtPtr actxt, |
|
msg, str1, str2, str3, NULL); |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlSchemaErr4(xmlSchemaAbstractCtxtPtr actxt, |
|
int error, xmlNodePtr node, const char *msg, |
|
const xmlChar *str1, const xmlChar *str2, |
|
@@ -2156,7 +2159,7 @@ xmlSchemaErr4(xmlSchemaAbstractCtxtPtr actxt, |
|
msg, str1, str2, str3, str4); |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(4,0) |
|
xmlSchemaErr(xmlSchemaAbstractCtxtPtr actxt, |
|
int error, xmlNodePtr node, const char *msg, |
|
const xmlChar *str1, const xmlChar *str2) |
|
@@ -2179,7 +2182,7 @@ xmlSchemaFormatNodeForError(xmlChar ** msg, |
|
/* |
|
* Don't try to format other nodes than element and |
|
* attribute nodes. |
|
- * Play save and return an empty string. |
|
+ * Play safe and return an empty string. |
|
*/ |
|
*msg = xmlStrdup(BAD_CAST ""); |
|
return(*msg); |
|
@@ -2260,7 +2263,7 @@ xmlSchemaFormatNodeForError(xmlChar ** msg, |
|
return (*msg); |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlSchemaInternalErr2(xmlSchemaAbstractCtxtPtr actxt, |
|
const char *funcName, |
|
const char *message, |
|
@@ -2271,24 +2274,21 @@ xmlSchemaInternalErr2(xmlSchemaAbstractCtxtPtr actxt, |
|
|
|
if (actxt == NULL) |
|
return; |
|
- msg = xmlStrdup(BAD_CAST "Internal error: "); |
|
- msg = xmlStrcat(msg, BAD_CAST funcName); |
|
- msg = xmlStrcat(msg, BAD_CAST ", "); |
|
+ msg = xmlStrdup(BAD_CAST "Internal error: %s, "); |
|
msg = xmlStrcat(msg, BAD_CAST message); |
|
msg = xmlStrcat(msg, BAD_CAST ".\n"); |
|
|
|
if (actxt->type == XML_SCHEMA_CTXT_VALIDATOR) |
|
- xmlSchemaErr(actxt, XML_SCHEMAV_INTERNAL, NULL, |
|
- (const char *) msg, str1, str2); |
|
- |
|
+ xmlSchemaErr3(actxt, XML_SCHEMAV_INTERNAL, NULL, |
|
+ (const char *) msg, (const xmlChar *) funcName, str1, str2); |
|
else if (actxt->type == XML_SCHEMA_CTXT_PARSER) |
|
- xmlSchemaErr(actxt, XML_SCHEMAP_INTERNAL, NULL, |
|
- (const char *) msg, str1, str2); |
|
+ xmlSchemaErr3(actxt, XML_SCHEMAP_INTERNAL, NULL, |
|
+ (const char *) msg, (const xmlChar *) funcName, str1, str2); |
|
|
|
FREE_AND_NULL(msg) |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt, |
|
const char *funcName, |
|
const char *message) |
|
@@ -2297,7 +2297,7 @@ xmlSchemaInternalErr(xmlSchemaAbstractCtxtPtr actxt, |
|
} |
|
|
|
#if 0 |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlSchemaPInternalErr(xmlSchemaParserCtxtPtr pctxt, |
|
const char *funcName, |
|
const char *message, |
|
@@ -2309,7 +2309,7 @@ xmlSchemaPInternalErr(xmlSchemaParserCtxtPtr pctxt, |
|
} |
|
#endif |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaCustomErr4(xmlSchemaAbstractCtxtPtr actxt, |
|
xmlParserErrors error, |
|
xmlNodePtr node, |
|
@@ -2334,7 +2334,7 @@ xmlSchemaCustomErr4(xmlSchemaAbstractCtxtPtr actxt, |
|
FREE_AND_NULL(msg) |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaCustomErr(xmlSchemaAbstractCtxtPtr actxt, |
|
xmlParserErrors error, |
|
xmlNodePtr node, |
|
@@ -2349,7 +2349,7 @@ xmlSchemaCustomErr(xmlSchemaAbstractCtxtPtr actxt, |
|
|
|
|
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaCustomWarning(xmlSchemaAbstractCtxtPtr actxt, |
|
xmlParserErrors error, |
|
xmlNodePtr node, |
|
@@ -2374,7 +2374,7 @@ xmlSchemaCustomWarning(xmlSchemaAbstractCtxtPtr actxt, |
|
|
|
|
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaKeyrefErr(xmlSchemaValidCtxtPtr vctxt, |
|
xmlParserErrors error, |
|
xmlSchemaPSVIIDCNodePtr idcNode, |
|
@@ -2523,7 +2523,7 @@ xmlSchemaIllegalAttrErr(xmlSchemaAbstractCtxtPtr actxt, |
|
FREE_AND_NULL(msg) |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaComplexTypeErr(xmlSchemaAbstractCtxtPtr actxt, |
|
xmlParserErrors error, |
|
xmlNodePtr node, |
|
@@ -2623,7 +2623,7 @@ xmlSchemaComplexTypeErr(xmlSchemaAbstractCtxtPtr actxt, |
|
xmlFree(msg); |
|
} |
|
|
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(8,0) |
|
xmlSchemaFacetErr(xmlSchemaAbstractCtxtPtr actxt, |
|
xmlParserErrors error, |
|
xmlNodePtr node, |
|
@@ -2914,7 +2914,7 @@ xmlSchemaPIllegalAttrErr(xmlSchemaParserCtxtPtr ctxt, |
|
* |
|
* Reports an error during parsing. |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaPCustomErrExt(xmlSchemaParserCtxtPtr ctxt, |
|
xmlParserErrors error, |
|
xmlSchemaBasicItemPtr item, |
|
@@ -2950,7 +2950,7 @@ xmlSchemaPCustomErrExt(xmlSchemaParserCtxtPtr ctxt, |
|
* |
|
* Reports an error during parsing. |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(5,0) |
|
xmlSchemaPCustomErr(xmlSchemaParserCtxtPtr ctxt, |
|
xmlParserErrors error, |
|
xmlSchemaBasicItemPtr item, |
|
@@ -2975,7 +2975,7 @@ xmlSchemaPCustomErr(xmlSchemaParserCtxtPtr ctxt, |
|
* |
|
* Reports an attribute use error during parsing. |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(6,0) |
|
xmlSchemaPAttrUseErr4(xmlSchemaParserCtxtPtr ctxt, |
|
xmlParserErrors error, |
|
xmlNodePtr node, |
|
@@ -3097,7 +3097,7 @@ xmlSchemaPMutualExclAttrErr(xmlSchemaParserCtxtPtr ctxt, |
|
* Reports a simple type validation error. |
|
* TODO: Should this report the value of an element as well? |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(8,0) |
|
xmlSchemaPSimpleTypeErr(xmlSchemaParserCtxtPtr ctxt, |
|
xmlParserErrors error, |
|
xmlSchemaBasicItemPtr ownerItem ATTRIBUTE_UNUSED, |
|
diff --git a/xmlstring.c b/xmlstring.c |
|
index d465c23..c66eef3 100644 |
|
--- a/xmlstring.c |
|
+++ b/xmlstring.c |
|
@@ -545,7 +545,7 @@ xmlStrcat(xmlChar *cur, const xmlChar *add) { |
|
* Returns the number of characters written to @buf or -1 if an error occurs. |
|
*/ |
|
int XMLCDECL |
|
-xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) { |
|
+xmlStrPrintf(xmlChar *buf, int len, const char *msg, ...) { |
|
va_list args; |
|
int ret; |
|
|
|
@@ -573,7 +573,7 @@ xmlStrPrintf(xmlChar *buf, int len, const xmlChar *msg, ...) { |
|
* Returns the number of characters written to @buf or -1 if an error occurs. |
|
*/ |
|
int |
|
-xmlStrVPrintf(xmlChar *buf, int len, const xmlChar *msg, va_list ap) { |
|
+xmlStrVPrintf(xmlChar *buf, int len, const char *msg, va_list ap) { |
|
int ret; |
|
|
|
if((buf == NULL) || (msg == NULL)) { |
|
diff --git a/xmlwriter.c b/xmlwriter.c |
|
index d3f29f8..92c4bb2 100644 |
|
--- a/xmlwriter.c |
|
+++ b/xmlwriter.c |
|
@@ -109,7 +109,7 @@ static int xmlTextWriterWriteDocCallback(void *context, |
|
const xmlChar * str, int len); |
|
static int xmlTextWriterCloseDocCallback(void *context); |
|
|
|
-static xmlChar *xmlTextWriterVSprintf(const char *format, va_list argptr); |
|
+static xmlChar *xmlTextWriterVSprintf(const char *format, va_list argptr) LIBXML_ATTR_FORMAT(1,0); |
|
static int xmlOutputBufferWriteBase64(xmlOutputBufferPtr out, int len, |
|
const unsigned char *data); |
|
static void xmlTextWriterStartDocumentCallback(void *ctx); |
|
@@ -149,7 +149,7 @@ xmlWriterErrMsg(xmlTextWriterPtr ctxt, xmlParserErrors error, |
|
* |
|
* Handle a writer error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlWriterErrMsgInt(xmlTextWriterPtr ctxt, xmlParserErrors error, |
|
const char *msg, int val) |
|
{ |
|
diff --git a/xpath.c b/xpath.c |
|
index 97410e7..6ddf491 100644 |
|
--- a/xpath.c |
|
+++ b/xpath.c |
|
@@ -348,7 +348,7 @@ xmlXPathErrMemory(xmlXPathContextPtr ctxt, const char *extra) |
|
xmlChar buf[200]; |
|
|
|
xmlStrPrintf(buf, 200, |
|
- BAD_CAST "Memory allocation failed : %s\n", |
|
+ "Memory allocation failed : %s\n", |
|
extra); |
|
ctxt->lastError.message = (char *) xmlStrdup(buf); |
|
} else { |
|
diff --git a/xpointer.c b/xpointer.c |
|
index 46f11e8..1a48812 100644 |
|
--- a/xpointer.c |
|
+++ b/xpointer.c |
|
@@ -85,7 +85,7 @@ xmlXPtrErrMemory(const char *extra) |
|
* |
|
* Handle a redefinition of attribute error |
|
*/ |
|
-static void |
|
+static void LIBXML_ATTR_FORMAT(3,0) |
|
xmlXPtrErr(xmlXPathParserContextPtr ctxt, int error, |
|
const char * msg, const xmlChar *extra) |
|
{ |
|
-- |
|
2.5.5 |
|
|
|
|