
rpluem at apache
Sep 9, 2008, 1:38 PM
Post #2 of 13
(432 views)
Permalink
|
|
Re: svn commit: r691418 [2/2] - in /httpd/httpd/trunk: ./ docs/manual/mod/ modules/filters/
[In reply to]
|
|
On 09/09/2008 10:10 PM, Ruediger Pluem wrote: > > > On 09/03/2008 01:01 AM, niq[at]apache.org wrote: >> Added: httpd/httpd/trunk/modules/filters/sed1.c >> URL: >> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/filters/sed1.c?rev=691418&view=auto >> >> ============================================================================== >> >> --- httpd/httpd/trunk/modules/filters/sed1.c (added) >> +++ httpd/httpd/trunk/modules/filters/sed1.c Tue Sep 2 16:01:47 2008 >> @@ -0,0 +1,957 @@ >> +/* >> + * Copyright (c) 2005, 2008 Sun Microsystems, Inc. All Rights Reserved. >> + * Use is subject to license terms. >> + * >> + * Copyright (c) 1984 AT&T >> + * All Rights Reserved >> + * >> + * Licensed under the Apache License, Version 2.0 (the "License"); >> + * you may not use this file except in compliance with the License. >> + * You may obtain a copy of the License at >> + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless >> required by applicable law or agreed to in writing, software + * >> distributed under the License is distributed on an "AS IS" BASIS, + * >> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or >> implied. + * See the License for the specific language governing >> permissions and >> + * limitations under the License. + */ >> + >> +#include "apr.h" >> +#include "apr_lib.h" >> +#include "libsed.h" >> +#include "sed.h" >> +#include "apr_strings.h" >> +#include "regexp.h" >> + >> +char *trans[040] = { >> + "\\01", >> + "\\02", >> + "\\03", >> + "\\04", >> + "\\05", >> + "\\06", >> + "\\07", >> + "-<", >> + "->", > > What are the above constants supposed to be. Opening the file in vi > shows that they are special > characters or better control characters. Looking with a hex editor > these () seem to be \\08. > Is this correct? > BTW: I noticed it because this commit message broke the atom feed of > mod_box for the cvs list > as these characters make the xml document of the feed invalid. But I > guess this is an error in mod_mbox. IMHO the following patch should fix the mod_mbox error by correctly encoding these chars: Index: module-2.0/mod_mbox_cte.c =================================================================== --- module-2.0/mod_mbox_cte.c (Revision 693585) +++ module-2.0/mod_mbox_cte.c (Arbeitskopie) @@ -91,6 +91,9 @@ else if (s[i] == '&') { j += 4; } + else if (((unsigned char) s[i]) < 32) { + j += 5; + } } /* If there is nothing to escape, just copy the body to the new @@ -118,6 +121,10 @@ memcpy(&x[j], "&", 5); j += 4; } + else if (((unsigned char) s[i]) < 32) { + apr_snprintf(&x[j], 6, "&#%02i;", s[i]); + j += 4; + } else { x[j] = s[i]; } As I have no environment where I can test mod_mbox can someone please check this patch? Regards Rüdiger
|