author | Ehsan Akhgari <ehsan@mozilla.com> |
Sat, 04 Dec 2010 04:21:03 -0500 | |
changeset 58661 | 2b63604957e2f5b9c01e47d4b2e1dfe153377627 |
parent 58660 | 9d0841ea7e3baf4e332d67980f0880eaecf2f231 |
child 58662 | a7adfbb051fd913f777df204a19f2fce7154703b |
push id | 17401 |
push user | eakhgari@mozilla.com |
push date | Mon, 06 Dec 2010 19:44:13 +0000 |
treeherder | mozilla-central@a7adfbb051fd [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bzbarsky, blocking-beta8 |
bugs | 616591 |
milestone | 2.0b8pre |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/netwerk/protocol/http/nsHttpTransaction.cpp +++ b/netwerk/protocol/http/nsHttpTransaction.cpp @@ -817,21 +817,25 @@ nsHttpTransaction::ParseHead(char *buf, if (!mHttpResponseMatched) { // If HTTP 0.9 response is allowed (i.e. neither 1.0 nor 1.1 was yet // received on the connection) then do a simple junk detection. // Otherwise find a HTTP response. // Value returned by IsHttp09Allowed() can change between calls to this // method, but it can change only from PR_TRUE to PR_FALSE and this is // OK since we can enter this statement multiple time only when the - // value id PR_FALSE. + // value is PR_FALSE. nsRefPtr<nsHttpConnectionInfo> ci; - mConnection->GetConnectionInfo(getter_AddRefs(ci)); + if (mConnection) { + mConnection->GetConnectionInfo(getter_AddRefs(ci)); + } - if (ci->IsHttp09Allowed()) { + // If the connection information is not available, we can't have a response + // body, so it doens't make sense to look for jumk in it. + if (ci && ci->IsHttp09Allowed()) { // tolerate some junk before the status line mHttpResponseMatched = PR_TRUE; char *p = LocateHttpStart(buf, PR_MIN(count, 8), PR_TRUE); if (!p) { // Treat any 0.9 style response of a put as a failure. if (mRequestHead->Method() == nsHttp::Put) return NS_ERROR_ABORT;