New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixing maxBodyLength enforcement #3786
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Removed due to the error being thrown by axios itself now, instead of follow-redirects
But what if the body comes from a stream and not a buffer like in this example? let { PassThrough } = require("stream");
let s = new PassThrough();
s.end(Buffer.alloc(1000));
require("axios")
.put("http://www.example.com", s, { maxRedirects: 0, maxBodyLength: 100 })
.catch(e => console.log("axios returned error:", e)); This is how it is in follow-redirects: // Only write when we don't exceed the maximum body length
if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {
this._requestBodyLength += data.length;
this._requestBodyBuffers.push({ data: data, encoding: encoding });
this._currentRequest.write(data, encoding, callback);
}
// Error when we exceed the maximum body length
else {
this.emit("error", new MaxBodyLengthExceededError());
this.abort();
} |
mbargiel
pushed a commit
to mbargiel/axios
that referenced
this issue
Jan 27, 2022
* Adding request body length validation on HTTP adapter * Removing error code assertion on HTTP's body length support test * Removed due to the error being thrown by axios itself now, instead of follow-redirects Co-authored-by: Jay <[email protected]>
Hi |
This "fix" is not complete. It will not work for streams as I wrote earlier ( |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
The
maxBodyLength
option was only being enforced by follow-redirects, so, the "body length exceeded" error was only thrown whenmaxRedirects
was set to 0. I added a body length validation before creating the request.Closes #3769.