DevTools: validate IO.Read max read length param
Bug: 1032230
Change-Id: I6d024f2027a11d20ab667dd9a95ffe256181c906
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960067
Reviewed-by: Peter Kvitek <kvitekp@chromium.org>
Commit-Queue: Andrey Kosyakov <caseq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#723584}
This commit is contained in:

committed by
Commit Bot

parent
fd3b5e0935
commit
9e9b1128e2
content/browser/devtools/protocol
third_party/blink/web_tests/inspector-protocol/io
@ -77,7 +77,12 @@ void IOHandler::Read(
|
||||
"does not support random access"));
|
||||
return;
|
||||
}
|
||||
stream->Read(offset.fromMaybe(-1), max_size.fromMaybe(kDefaultChunkSize),
|
||||
int size = max_size.fromMaybe(kDefaultChunkSize);
|
||||
if (size <= 0) {
|
||||
callback->sendFailure(Response::InvalidParams("Invalid max read size"));
|
||||
return;
|
||||
}
|
||||
stream->Read(offset.fromMaybe(-1), size,
|
||||
base::BindOnce(&IOHandler::ReadComplete,
|
||||
weak_factory_.GetWeakPtr(), std::move(callback)));
|
||||
}
|
||||
|
@ -4,6 +4,10 @@ Next 5 bytes: "78901" eof: false, encoded: false
|
||||
Next chunk: 23456..56789 (999968)
|
||||
Seeking to 999996: "6789" eof: true, encoded: false
|
||||
Seeking to 0: "0123456789" eof: false, encoded: false
|
||||
Reading negative size, got error: {
|
||||
code : -32602
|
||||
message : Invalid max read size
|
||||
}
|
||||
From concurrent requests: 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
|
||||
Total read: 1000000
|
||||
Error from close: undefined
|
||||
|
@ -20,6 +20,10 @@
|
||||
}
|
||||
|
||||
function dumpResponse(title, response) {
|
||||
if (response.error) {
|
||||
testRunner.log(response.error, `${title}, got error: `);
|
||||
return;
|
||||
}
|
||||
testRunner.log(`${title}: "${response.result.data}" eof: ${response.result.eof}, encoded: ${response.result.base64Encoded}`);
|
||||
}
|
||||
|
||||
@ -42,6 +46,9 @@
|
||||
response = await session.protocol.IO.read({handle: handle, offset: 0, size: 10});
|
||||
dumpResponse('Seeking to 0', response);
|
||||
|
||||
response = await session.protocol.IO.read({handle: handle, offset: 0, size: -1});
|
||||
dumpResponse('Reading negative size', response);
|
||||
|
||||
// Try multiple queued request
|
||||
var promises = [];
|
||||
for (var i = 0; i < 10; ++i)
|
||||
|
Reference in New Issue
Block a user