Closed Bug 120628 Opened 23 years ago Closed 23 years ago

Crash on submitting form

Categories

(Core :: Networking: HTTP, defect)

x86
All
defect
Not set
critical

Tracking

()

VERIFIED DUPLICATE of bug 103757

People

(Reporter: bc, Assigned: badami)

References

()

Details

(Keywords: assertion, crash)

Attachments

(4 files)

Steps to reproduce:
1. enter a bogus user id and password
2. click Go to submit form.

Results:
Crash
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.7+) Gecko/20020111

Reproducible:
Everytime

Several errors occur and no talkback is generated.
Also saw the following assertion:
Error loading URL https://www.enthusian.com/template/loginProcess.cfm :
804b0002
###!!! ASSERTION: Wrong Document Channel: 'request == mDocumentRequest', file
nsDocLoader.cpp, line 1292
###!!! Break: at file nsDocLoader.cpp, line 1292
Severity: normal → critical
Keywords: crash
OS: Windows 2000 → All
-> Networking:http 
Component: Browser-General → Networking: HTTP
I see this crash in Windows XP too, using build 2002011604
can you please try nspr logging?
NSPR_LOG_MODULES http:5 [i think that's the syntax]
Assignee: asa → darin
Keywords: assertion
QA Contact: doronr → tever
Attached file HTTP log (95kB)
Adding http log, made with:
set NSPR_LOG_MODULES=nsHttp:5
set NSPR_LOG_FILE=http.log
-> badami
Assignee: darin → badami
Darin

Looks like after entering in an invalid username/passwd, 3 nsHttpTransaction
objects that get created.
On the last one, we seem to be getting the body with no reponse status-line/headers.
This causes us to fail quite badly while looking for the beginning HTTP of the
status line. We find the HTTP in <META HTTP.
The reason for the failure is that in nsHttpTransaction::ParseHead count -
*countRead turns out to be -ve and since they are unsigned integers becomes a
huge +ve value.

While we could error out if *countRead > count, I first want a second opinion
that this is actually what is happenning. 
If for anyreason *countRead > count, then return early and prevent crashes as a
result of count - *countRead becoming -ve, and since they are unsigned
resulting in a huge +ve number.
Looks like IE and NS4.7 work fine with this site.
So there is certainly something fishy on our end.
vinay: actually, i have a feeling that this line might be the culprit:

   count -= *countRead;

there is code that tries to ignore some garbage before the status line... it
searches forward for the string HTTP.  unfortunately, that seems to be matching
the wrong thing in this case, because the response is really HTTP/0.9... ie.
sent without any headers.
Attached file purify log
Lost of fatal errors in the purify log
Lost ==> lots

1. Purify logs indicate a lot of fatal errors.
2. Although as far as looking at the n/w bytes from the debugger, comment #7 is
still valid, given that 
a. IE, Nav4.7 work fine.
b. Given the purify errors, I'am not convinced that the problem is that the
server is returning back just the body and no status-line/headers. Also, looks
like the server we are talking to is IIS that has identified itself already as
1.1 server. So it cannot be sending back 0.9 responses.

3. At the end of this there may still be an issue with nsHttpTransaction::ParseHead.
4. Always keep getting the assertion 
###!!! ASSERTION: Wrong Document Channel: 'request == mDocumentRequest', file
nsDocLoader.cpp, line 1292
###!!! Break: at file nsDocLoader.cpp, line 1292

Can we get someone from the docloader/XMLdocument groups to take a look at the
above ?



*** This bug has been marked as a duplicate of 103757 ***
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → DUPLICATE
Verified dupe.
Status: RESOLVED → VERIFIED
QA Contact: tever → junruh
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: