moriyoshi               Wed Dec 18 14:32:44 2002 EDT

  Modified files:              
    /php4/sapi/apache2filter    sapi_apache2.c 
  Log:
  An intuitive attempt to hunt the bug.
  
  
Index: php4/sapi/apache2filter/sapi_apache2.c
diff -u php4/sapi/apache2filter/sapi_apache2.c:1.93 
php4/sapi/apache2filter/sapi_apache2.c:1.94
--- php4/sapi/apache2filter/sapi_apache2.c:1.93 Mon Dec  9 13:45:32 2002
+++ php4/sapi/apache2filter/sapi_apache2.c      Wed Dec 18 14:32:44 2002
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: sapi_apache2.c,v 1.93 2002/12/09 18:45:32 iliaa Exp $ */
+/* $Id: sapi_apache2.c,v 1.94 2002/12/18 19:32:44 moriyoshi Exp $ */
 
 #include <fcntl.h>
 
@@ -310,6 +310,8 @@
        apr_bucket *b;
        const char *str;
        apr_size_t n;
+       const char *prev_fetched_str;
+       apr_size_t prev_fetched_str_len;
        apr_status_t rv;
        TSRMLS_FETCH();
 
@@ -328,8 +330,25 @@
                return rv;
        }
 
+       prev_fetched_str = NULL;
+       prev_fetched_str_len = -1;
+
        for (b = APR_BRIGADE_FIRST(bb); b != APR_BRIGADE_SENTINEL(bb); b = 
APR_BUCKET_NEXT(b)) {
                apr_bucket_read(b, &str, &n, 1);
+               if (APR_BUCKET_IS_HEAP(b)) {
+                       if ((str == prev_fetched_str && n == prev_fetched_str_len)) {
+                               char *brigade_dump = NULL;
+                               apr_bucket *tmp;
+
+                               for (tmp = APR_BRIGADE_FIRST(bb); tmp != 
+APR_BRIGADE_SENTINEL(bb); tmp = APR_BUCKET_NEXT(tmp)) {
+                                       brigade_dump = apr_psprintf(f->r->pool, "%s[%s 
+%x] ", (brigade_dump ? brigade_dump: ""), tmp->type->name, (int)tmp);
+                               }
+
+                               ap_log_error(APLOG_MARK, APLOG_WARNING, 0, 0, "* BUG * 
+You encountered an apr bug. Please contact to [EMAIL PROTECTED] with the 
+following information: %s", (brigade_dump ? brigade_dump: "(empty)"));
+                       }
+                       prev_fetched_str = str;
+                       prev_fetched_str_len = n;
+               }
                if (n > 0) {
                        old_index = ctx->post_len;
                        ctx->post_len += n;



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to