You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2016/07/29 17:36:34 UTC

svn commit: r1754555 - /httpd/httpd/trunk/server/gen_test_char.c

Author: wrowe
Date: Fri Jul 29 17:36:34 2016
New Revision: 1754555

URL: http://svn.apache.org/viewvc?rev=1754555&view=rev
Log:
Leave an emphatic TODO per Jeff's observations

Modified:
    httpd/httpd/trunk/server/gen_test_char.c

Modified: httpd/httpd/trunk/server/gen_test_char.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/gen_test_char.c?rev=1754555&r1=1754554&r2=1754555&view=diff
==============================================================================
--- httpd/httpd/trunk/server/gen_test_char.c (original)
+++ httpd/httpd/trunk/server/gen_test_char.c Fri Jul 29 17:36:34 2016
@@ -120,19 +120,18 @@ int main(int argc, char *argv[])
 
         /* Stop for any non-'token' character, including ctrls, obs-text,
          * and "tspecials" (RFC2068) a.k.a. "separators" (RFC2616)
-         * XXX: With luck, isascii behaves sensibly on EBCDIC platforms
-         *      and insists on chars that correspond to ASCII equivilants
+         * XXX: We need to build a specific table for EBCDIC values with
+         * ASCII equivilants here
          */
-        if (!c || apr_iscntrl(c) || strchr(" \t()<>@,;:\\\"/[]?={}", c))
-                                 || !apr_isascii(c)) {
-            flags |= T_HTTP_TOKEN_STOP;
+        if (!c || apr_iscntrl(c) || strchr(" \t()<>@,;:\\\"/[]?={}", c)) {
         }
 
         /* Catch CTRLs other than VCHAR, HT and SP, and obs-text (RFC7230 3.2)
          * This includes only the C0 plane, not C1 (which is obs-text itself.)
-         * XXX: Need to confirm this behavior on EBCDIC architecture
+         * XXX: Need to constrain iscntrl to C0 equivilants in ASCII,
+         * even on EBCDIC architecture
          */
-        if (!c || (apr_iscntrl(c) && c != '\t' && apr_isascii(c))) {
+        if (!c || (apr_iscntrl(c) && c != '\t')) {
             flags |= T_HTTP_CTRLS;
         }
 



Re: svn commit: r1754555 - /httpd/httpd/trunk/server/gen_test_char.c

Posted by Ruediger Pluem <rp...@apache.org>.

On 07/29/2016 07:36 PM, wrowe@apache.org wrote:
> Author: wrowe
> Date: Fri Jul 29 17:36:34 2016
> New Revision: 1754555
> 
> URL: http://svn.apache.org/viewvc?rev=1754555&view=rev
> Log:
> Leave an emphatic TODO per Jeff's observations
> 
> Modified:
>     httpd/httpd/trunk/server/gen_test_char.c
> 
> Modified: httpd/httpd/trunk/server/gen_test_char.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/gen_test_char.c?rev=1754555&r1=1754554&r2=1754555&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/gen_test_char.c (original)
> +++ httpd/httpd/trunk/server/gen_test_char.c Fri Jul 29 17:36:34 2016
> @@ -120,19 +120,18 @@ int main(int argc, char *argv[])
>  
>          /* Stop for any non-'token' character, including ctrls, obs-text,
>           * and "tspecials" (RFC2068) a.k.a. "separators" (RFC2616)
> -         * XXX: With luck, isascii behaves sensibly on EBCDIC platforms
> -         *      and insists on chars that correspond to ASCII equivilants
> +         * XXX: We need to build a specific table for EBCDIC values with
> +         * ASCII equivilants here
>           */
> -        if (!c || apr_iscntrl(c) || strchr(" \t()<>@,;:\\\"/[]?={}", c))
> -                                 || !apr_isascii(c)) {
> -            flags |= T_HTTP_TOKEN_STOP;

I guess you did not want to kill the line above.

> +        if (!c || apr_iscntrl(c) || strchr(" \t()<>@,;:\\\"/[]?={}", c)) {
>          }
>  
>          /* Catch CTRLs other than VCHAR, HT and SP, and obs-text (RFC7230 3.2)
>           * This includes only the C0 plane, not C1 (which is obs-text itself.)
> -         * XXX: Need to confirm this behavior on EBCDIC architecture
> +         * XXX: Need to constrain iscntrl to C0 equivilants in ASCII,
> +         * even on EBCDIC architecture
>           */
> -        if (!c || (apr_iscntrl(c) && c != '\t' && apr_isascii(c))) {
> +        if (!c || (apr_iscntrl(c) && c != '\t')) {
>              flags |= T_HTTP_CTRLS;
>          }
>  

Regards

R�diger