■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

read.cgi 2006―JavaScriptはCGIの夢を見るか

94 : 株価【800】◆cZfSunOs.U :2006/07/26(水) 23:10:45 ID:oRQikQhd0
不正なバイトシーケンスを無視して 500 エラーにしないようにするパッチ.

--- httpd-2.2.2/modules/filters/mod_charset_lite.c      Sat Apr 22 10:53:06 2006
+++ httpd-2.2.2/modules/filters/mod_charset_lite.c      Sat Apr 22 10:53:06 2006
@@ -188,6 +188,31 @@
     return NULL;
 }
 
+static apr_status_t _xlate_conv_buffer_no_eilseq(apr_xlate_t *convset,
+                                                 const char *inbuf,
+                                                 apr_size_t *inbytes_left,
+                                                 char *outbuf,
+                                                 apr_size_t *outbytes_left)
+{
+    apr_status_t rv;
+
+    while (inbytes_left && outbytes_left) {
+        apr_size_t inbytes = *inbytes_left, outbytes = *outbytes_left;
+
+        if ((rv = apr_xlate_conv_buffer(convset, inbuf, inbytes_left,
+                                        outbuf, outbytes_left)) != APR_EINVAL) /* EILSEQ */
+            break;
+        if (*inbytes_left)
+            inbuf += inbytes - --(*inbytes_left);
+        if (*outbytes_left)
+            (outbuf += outbytes - --(*outbytes_left))[-1] = '?';
+    }
+
+    return rv != APR_EINVAL ? rv : APR_SUCCESS;
+}
+
+#define apr_xlate_conv_buffer _xlate_conv_buffer_no_eilseq
+
 /* find_code_page() is a fixup hook that decides if translation should be
  * enabled; if so, it sets up request data for use by the filter registration
  * hook so that it knows what to do

317KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30