diff --git a/parser.c b/parser.c index cfc5b8e0..6286cad6 100644 --- a/parser.c +++ b/parser.c @@ -4421,7 +4421,7 @@ get_more: if (*in == ']') { if ((in[1] == ']') && (in[2] == '>')) { xmlFatalErr(ctxt, XML_ERR_MISPLACED_CDATA_END, NULL); - ctxt->input->cur = in; + ctxt->input->cur = in + 1; return; } in++; @@ -4574,7 +4574,7 @@ xmlParseCharDataComplex(xmlParserCtxtPtr ctxt, int cdata) { } } } - if ((cur != 0) && (!IS_CHAR(cur))) { + if ((ctxt->input->cur < ctxt->input->end) && (!IS_CHAR(cur))) { /* Generate the error and skip the offending character */ xmlFatalErrMsgInt(ctxt, XML_ERR_INVALID_CHAR, "PCDATA invalid Char value %d\n",