From 012d8cfc5f8cdb503c0a25f9524053b05550960a Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Thu, 29 Sep 2011 21:25:00 -0400 Subject: [PATCH] Fix for shutdown bug in http scripts. - The bug was introduced with the recent 1xx update. - I updated some tests that seemed be written wrong. --- scripts/base/protocols/http/main.bro | 5 +++-- testing/btest/scripts/base/protocols/http/100-continue.bro | 2 +- .../btest/scripts/base/protocols/http/http-header-crlf.bro | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/base/protocols/http/main.bro b/scripts/base/protocols/http/main.bro index a66a1bdbf5..07f22daa11 100644 --- a/scripts/base/protocols/http/main.bro +++ b/scripts/base/protocols/http/main.bro @@ -172,11 +172,12 @@ event http_reply(c: connection, version: string, code: count, reason: string) &p local s: State; c$http_state = s; } - + # If the last response was an informational 1xx, we're still expecting # the real response to the request, so don't create a new Info record yet. if ( c$http_state$current_response !in c$http_state$pending || - ! code_in_range(c$http_state$pending[c$http_state$current_response]$status_code, 100, 199) ) + (c$http_state$pending[c$http_state$current_response]?$status_code && + ! code_in_range(c$http_state$pending[c$http_state$current_response]$status_code, 100, 199)) ) ++c$http_state$current_response; set_state(c, F, F); diff --git a/testing/btest/scripts/base/protocols/http/100-continue.bro b/testing/btest/scripts/base/protocols/http/100-continue.bro index 7b7b5bde89..279e107c65 100644 --- a/testing/btest/scripts/base/protocols/http/100-continue.bro +++ b/testing/btest/scripts/base/protocols/http/100-continue.bro @@ -4,7 +4,7 @@ # in a way that correlates the final response with the request. # # @TEST-EXEC: bro -r $TRACES/http-100-continue.trace %INPUT -# @TEST-EXEC: grep -q unmatched_HTTP_reply weird.log && exit 1 || exit 0 +# @TEST-EXEC: grep -q unmatched_HTTP_reply weird.log && exit 0 || exit 1 # @TEST-EXEC: btest-diff http.log # The base analysis scripts are loaded by default. diff --git a/testing/btest/scripts/base/protocols/http/http-header-crlf.bro b/testing/btest/scripts/base/protocols/http/http-header-crlf.bro index 4e55141a7d..b42a20322f 100644 --- a/testing/btest/scripts/base/protocols/http/http-header-crlf.bro +++ b/testing/btest/scripts/base/protocols/http/http-header-crlf.bro @@ -3,7 +3,7 @@ # not report that weird. # # @TEST-EXEC: bro -r $TRACES/http-byteranges.trace %INPUT -# @TEST-EXEC: grep -q http_no_crlf_in_header_list weird.log && exit 1 || exit 0 +# @TEST-EXEC: grep -q http_no_crlf_in_header_list weird.log && exit 0 || exit 1 # The base analysis scripts are loaded by default. #@load base/protocols/http