@@ -74,12 +74,6 @@ bool ClientHelloParser::ParseRecordHeader(const uint8_t* data, size_t avail) {
74
74
75
75
void ClientHelloParser::ParseHeader (const uint8_t * data, size_t avail) {
76
76
ClientHello hello;
77
- bool failed = true ;
78
-
79
- OnScopeLeave cleanup ([&]() {
80
- if (failed)
81
- End ();
82
- });
83
77
84
78
// >= 5 + frame size bytes for frame parsing
85
79
if (body_offset_ + frame_len_ > avail)
@@ -94,23 +88,23 @@ void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) {
94
88
if (data[body_offset_ + 4 ] != 0x03 ||
95
89
data[body_offset_ + 5 ] < 0x01 ||
96
90
data[body_offset_ + 5 ] > 0x03 ) {
97
- return ;
91
+ return End () ;
98
92
}
99
93
100
94
if (data[body_offset_] == kClientHello ) {
101
95
if (state_ == kTLSHeader ) {
102
96
if (!ParseTLSClientHello (data, avail))
103
- return ;
97
+ return End () ;
104
98
} else {
105
99
// We couldn't get here, but whatever
106
- return ;
100
+ return End () ;
107
101
}
108
102
109
103
// Check if we overflowed (do not reply with any private data)
110
104
if (session_id_ == nullptr ||
111
105
session_size_ > 32 ||
112
106
session_id_ + session_size_ > data + avail) {
113
- return ;
107
+ return End () ;
114
108
}
115
109
}
116
110
@@ -122,8 +116,6 @@ void ClientHelloParser::ParseHeader(const uint8_t* data, size_t avail) {
122
116
hello.servername_ = servername_;
123
117
hello.servername_size_ = static_cast <uint8_t >(servername_size_);
124
118
onhello_cb_ (cb_arg_, hello);
125
- failed = false ;
126
- return ;
127
119
}
128
120
129
121
0 commit comments