Mantis - Resin
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
4819 | minor | always | 10-20-11 09:58 | 10-20-11 11:09 | |
|
|||||
Reporter: | ferg | Platform: | |||
Assigned To: | ferg | OS: | |||
Priority: | normal | OS Version: | |||
Status: | closed | Product Version: | 4.0.24 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 4.0.24 | ||
|
|||||
Summary: | 0004819: contentLength int vs long | ||||
Description: |
(rep by Aaron Freeman) In AbstractHttpRequest I am seeing that the global variable _contentLength it appropriately a ?long?. Love that. Been a thorn in our side for a long time. However in looking at this method (also inside of AbstractHttpRequest): protected void setContentLength(CharSegment value) { int contentLength = 0; int ch; int i = 0; int length = value.length(); for (; i < length && (ch = value.charAt(i)) >= '0' && ch <= '9'; i++) { contentLength = 10 * contentLength + ch - '0'; } if (i > 0) _contentLength = contentLength; } The method is internally using an int, so the values get truncated or ?wrapped? to negative values. Internally I believe that method should use a long for the local contentLength variable. This should help prevent HttpRequest from incorrectly throwing this for request larger than 2GB (which is what the user community would see in their logs if they are dumping exceptions): throw new com.caucho.server.dispatch.BadRequestException("POST requires content-length"); |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
There are no notes attached to this issue. |