Skip to content

Commit

Permalink
Fix a couple of ABI issues with C14N 1.1
Browse files Browse the repository at this point in the history
* include/libxml/c14n.h c14n.c: fix API to not include enum xmlC14NMode
  in the arguments, and do a bit more check on input
  • Loading branch information
lsh123 authored and veillard committed Jul 9, 2009
1 parent 8386824 commit 175beba
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
24 changes: 19 additions & 5 deletions c14n.c
Expand Up @@ -1863,17 +1863,31 @@ xmlC14NNewCtx(xmlDocPtr doc,
*/
int
xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback,
void* user_data, xmlC14NMode mode, xmlChar **inclusive_ns_prefixes,
void* user_data, int mode, xmlChar **inclusive_ns_prefixes,
int with_comments, xmlOutputBufferPtr buf) {

xmlC14NCtxPtr ctx;
xmlC14NMode c14n_mode = XML_C14N_1_0;
int ret;

if ((buf == NULL) || (doc == NULL)) {
xmlC14NErrParam("executing c14n");
return (-1);
}

/* for backward compatibility, we have to have "mode" as "int"
and here we check that user gives valid value */
switch(mode) {
case XML_C14N_1_0:
case XML_C14N_EXCLUSIVE_1_0:
case XML_C14N_1_1:
c14n_mode = (xmlC14NMode)mode;
break;
default:
xmlC14NErrParam("invalid mode for executing c14n");
return (-1);
}

/*
* Validate the encoding output buffer encoding
*/
Expand All @@ -1884,8 +1898,8 @@ xmlC14NExecute(xmlDocPtr doc, xmlC14NIsVisibleCallback is_visible_callback,
}

ctx = xmlC14NNewCtx(doc, is_visible_callback, user_data,
mode, inclusive_ns_prefixes,
with_comments, buf);
c14n_mode, inclusive_ns_prefixes,
with_comments, buf);
if (ctx == NULL) {
xmlC14NErr(NULL, (xmlNodePtr) doc, XML_C14N_CREATE_CTXT,
"xmlC14NExecute: unable to create C14N context\n");
Expand Down Expand Up @@ -1986,7 +2000,7 @@ xmlC14NDocSaveTo(xmlDocPtr doc, xmlNodeSetPtr nodes,
*/
int
xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
xmlC14NMode mode, xmlChar ** inclusive_ns_prefixes,
int mode, xmlChar ** inclusive_ns_prefixes,
int with_comments, xmlChar ** doc_txt_ptr)
{
int ret;
Expand Down Expand Up @@ -2057,7 +2071,7 @@ xmlC14NDocDumpMemory(xmlDocPtr doc, xmlNodeSetPtr nodes,
*/
int
xmlC14NDocSave(xmlDocPtr doc, xmlNodeSetPtr nodes,
xmlC14NMode mode, xmlChar ** inclusive_ns_prefixes,
int mode, xmlChar ** inclusive_ns_prefixes,
int with_comments, const char *filename, int compression)
{
xmlOutputBufferPtr buf;
Expand Down
6 changes: 3 additions & 3 deletions include/libxml/c14n.h
Expand Up @@ -75,15 +75,15 @@ XMLPUBFUN int XMLCALL
XMLPUBFUN int XMLCALL
xmlC14NDocDumpMemory (xmlDocPtr doc,
xmlNodeSetPtr nodes,
xmlC14NMode mode,
int mode, /* a xmlC14NMode */
xmlChar **inclusive_ns_prefixes,
int with_comments,
xmlChar **doc_txt_ptr);

XMLPUBFUN int XMLCALL
xmlC14NDocSave (xmlDocPtr doc,
xmlNodeSetPtr nodes,
xmlC14NMode mode,
int mode, /* a xmlC14NMode */
xmlChar **inclusive_ns_prefixes,
int with_comments,
const char* filename,
Expand Down Expand Up @@ -111,7 +111,7 @@ XMLPUBFUN int XMLCALL
xmlC14NExecute (xmlDocPtr doc,
xmlC14NIsVisibleCallback is_visible_callback,
void* user_data,
xmlC14NMode mode,
int mode, /* a xmlC14NMode */
xmlChar **inclusive_ns_prefixes,
int with_comments,
xmlOutputBufferPtr buf);
Expand Down

0 comments on commit 175beba

Please sign in to comment.