Your message dated Fri, 23 May 2008 14:08:40 +0100
with message-id <[EMAIL PROTECTED]>
and subject line beepcore-c has been removed from Debian, closing #300849
has caused the Debian Bug report #300849,
regarding beepcore-c0: mishandles sending CDATA piggyback data in channel open 
confirmation
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
300849: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=300849
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: beepcore-c0
Version: 0.2+cvs20030603-1
Tags: patch

xml_normalize_length() and xml_normalize_worker() disagree about the
handling of CDATA sections. This leads to underruns when sending
CDATA piggyback data in channel confirmations.

Not-strictly-correct but probably good-enough-in-nearly-all-cases patch
attached. It'll break if the piggyback data has more than one CDATA
section.
-- 
Sam "Eddie" Couter  |  mailto:[EMAIL PROTECTED]
Debian Developer    |  mailto:[EMAIL PROTECTED]
                    |  jabber:[EMAIL PROTECTED]
OpenPGP fingerprint:  A46B 9BB5 3148 7BEA 1F05  5BD5 8530 03AE DE89 C75C
--- beepcore-c-0.2+cvs20030603.orig/utility/xml_entities.c
+++ beepcore-c-0.2+cvs20030603/utility/xml_entities.c
@@ -297,6 +297,7 @@
 int xml_normalize_worker(char * in, char * out, int outlen) {
   char * entities[256], * thisin, * thisout, * tmp;
   int inchar;
+  char *cdata, *cdataend;
 
   memset(entities, 0, sizeof(char *) * 256);
   entities['<']  = ";tl&";   /* "&lt;"; */
@@ -305,6 +306,9 @@
   entities['\''] = ";sopa&"; /* "&apos;"; */
   entities['&']  = ";pma&";  /* "&amp;";   */
 
+  cdata = strstr(in, "<![CDATA[");
+  if (cdata)
+    cdataend = strstr(cdata, "]]>") + 3;
   inchar = strlen(in);
   thisin = &(in[inchar - 1]);
   thisout = &(out[outlen]);
@@ -312,7 +316,7 @@
   thisout--;
 
   while (inchar) {
-    if (entities[(int)*thisin]) {
+    if (entities[(int)*thisin] && !(cdata && thisin >= cdata && cdataend && 
thisin < cdataend)) {
       tmp = entities[(int)*thisin];
       while (*tmp) {
        *(thisout--) = *(tmp++);

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Version: 0.2+cvs20030603-1+rm

The beepcore-c package has been removed from Debian testing, unstable and
experimental, so I am now closing the bugs that were still opened
against it.

For more information about this package's removal, read
http://bugs.debian.org/476261 . That bug might give the reasons why
this package was removed, and suggestions of possible replacements.

Don't hesitate to reply to this mail if you have any question.

Thank you for your contribution to Debian.

--
Marco Rodrigues
http://Marco.Tondela.org


--- End Message ---

Reply via email to