From: Brian Pane Date: Sat, 15 Dec 2001 03:22:24 +0000 (+0000) Subject: Fix for segfault that happened upon reaching EOS in an X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=161b8f0b22cb4abff97cd58dfc0fc68fb7cca85e;p=apache Fix for segfault that happened upon reaching EOS in an intermediate SSI parsing state Submitted by: Justin Erenkrantz git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92488 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/filters/mod_include.c b/modules/filters/mod_include.c index 02f889f068..6d65bb7e98 100644 --- a/modules/filters/mod_include.c +++ b/modules/filters/mod_include.c @@ -2700,7 +2700,7 @@ static apr_status_t send_parsed_content(apr_bucket_brigade **bb, ap_escape_shell_cmd(r->pool, arg_copy)); } - while (dptr != APR_BRIGADE_SENTINEL(*bb)) { + while (dptr != APR_BRIGADE_SENTINEL(*bb) || !APR_BUCKET_IS_EOS(dptr)) { /* State to check for the STARTING_SEQUENCE. */ if ((ctx->state == PRE_HEAD) || (ctx->state == PARSE_HEAD)) { int do_cleanup = 0; @@ -2943,6 +2943,18 @@ static apr_status_t send_parsed_content(apr_bucket_brigade **bb, } } + /* We have nothing more to send, stop now. */ + if (APR_BUCKET_IS_EOS(dptr)) { + /* We might have something saved that we never completed, but send + * down unparsed. This allows for