Hi Attached the patch for the version I uploaded. Sorry, I forget to send it beforehand, though it actually contains just the upstream cvs patch which is already referred to in the bug log.
Cheers Luk -- Luk Claes - http://people.debian.org/~luk - GPG key 1024D/9B7C328D Fingerprint: D5AF 25FB 316B 53BB 08E7 F999 E544 DE07 9B7C 328D
diff -u libxml2-2.6.23/debian/changelog libxml2-2.6.23/debian/changelog --- libxml2-2.6.23/debian/changelog +++ libxml2-2.6.23/debian/changelog @@ -1,3 +1,10 @@ +libxml2 (2.6.23-1.1) unstable; urgency=high + + * Non-maintainer upload. + * Fix XML parser to unbreak xsltproc (Closes: #346594). + + -- Luk Claes <[EMAIL PROTECTED]> Thu, 12 Jan 2006 15:25:42 +0100 + libxml2 (2.6.23-1) unstable; urgency=low * New upstream release only in patch2: unchanged: --- libxml2-2.6.23.orig/parser.c +++ libxml2-2.6.23/parser.c @@ -3539,16 +3539,12 @@ ctxt->input->cur = in; if (*in == 0xD) { in++; - if (!*in) /* if end of current chunk return */ - return; if (*in == 0xA) { ctxt->input->cur = in; in++; ctxt->input->line++; ctxt->input->col = 1; continue; /* while */ } - if (!*in) /* if end of current chunk return */ - return; in--; } if (*in == '<') { @@ -3931,8 +3927,6 @@ ctxt->input->line++; ctxt->input->col = 1; continue; /* while */ } - if (!*in) /* if end of current chunk return */ - return; in--; } SHRINK; @@ -10407,12 +10401,19 @@ int xmlParseChunk(xmlParserCtxtPtr ctxt, const char *chunk, int size, int terminate) { + int end_in_lf = 0; + if (ctxt == NULL) return(XML_ERR_INTERNAL_ERROR); if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1)) return(ctxt->errNo); if (ctxt->instate == XML_PARSER_START) xmlDetectSAX2(ctxt); + if ((size > 0) && (chunk != NULL) && (!terminate) && + (chunk[size - 1] == '\r')) { + end_in_lf = 1; + size--; + } if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) && (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) { int base = ctxt->input->base - ctxt->input->buf->buffer->content; @@ -10451,6 +10452,10 @@ } } xmlParseTryOrFinish(ctxt, terminate); + if ((end_in_lf == 1) && (ctxt->input != NULL) && + (ctxt->input->buf != NULL)) { + xmlParserInputBufferPush(ctxt->input->buf, 1, "\r"); + } if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1)) return(ctxt->errNo); if (terminate) {
signature.asc
Description: OpenPGP digital signature