crypto: replace gotos
PR-URL: https://github.com/nodejs/node/pull/23132 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
6ea507a8bf
commit
640172d24d
@ -74,12 +74,6 @@ bool ClientHelloParser::ParseRecordHeader(const uint8_t* data, size_t avail) {
|
|||||||
|
|
||||||
void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) {
|
void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) {
|
||||||
ClientHello hello;
|
ClientHello hello;
|
||||||
bool failed = true;
|
|
||||||
|
|
||||||
OnScopeLeave cleanup([&]() {
|
|
||||||
if (failed)
|
|
||||||
End();
|
|
||||||
});
|
|
||||||
|
|
||||||
// >= 5 + frame size bytes for frame parsing
|
// >= 5 + frame size bytes for frame parsing
|
||||||
if (body_offset_ + frame_len_ > avail)
|
if (body_offset_ + frame_len_ > avail)
|
||||||
@ -94,23 +88,23 @@ void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) {
|
|||||||
if (data[body_offset_ + 4] != 0x03 ||
|
if (data[body_offset_ + 4] != 0x03 ||
|
||||||
data[body_offset_ + 5] < 0x01 ||
|
data[body_offset_ + 5] < 0x01 ||
|
||||||
data[body_offset_ + 5] > 0x03) {
|
data[body_offset_ + 5] > 0x03) {
|
||||||
return;
|
return End();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data[body_offset_] == kClientHello) {
|
if (data[body_offset_] == kClientHello) {
|
||||||
if (state_ == kTLSHeader) {
|
if (state_ == kTLSHeader) {
|
||||||
if (!ParseTLSClientHello(data, avail))
|
if (!ParseTLSClientHello(data, avail))
|
||||||
return;
|
return End();
|
||||||
} else {
|
} else {
|
||||||
// We couldn't get here, but whatever
|
// We couldn't get here, but whatever
|
||||||
return;
|
return End();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we overflowed (do not reply with any private data)
|
// Check if we overflowed (do not reply with any private data)
|
||||||
if (session_id_ == nullptr ||
|
if (session_id_ == nullptr ||
|
||||||
session_size_ > 32 ||
|
session_size_ > 32 ||
|
||||||
session_id_ + session_size_ > data + avail) {
|
session_id_ + session_size_ > data + avail) {
|
||||||
return;
|
return End();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,8 +116,6 @@ void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) {
|
|||||||
hello.servername_ = servername_;
|
hello.servername_ = servername_;
|
||||||
hello.servername_size_ = static_cast<uint8_t>(servername_size_);
|
hello.servername_size_ = static_cast<uint8_t>(servername_size_);
|
||||||
onhello_cb_(cb_arg_, hello);
|
onhello_cb_(cb_arg_, hello);
|
||||||
failed = false;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user