mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
handshake.cpp:
SCCS merged extra/yassl/src/handshake.cpp: SCCS merged
This commit is contained in:
commit
f1627aab08
3 changed files with 16 additions and 1 deletions
|
@ -527,6 +527,11 @@ void ProcessOldClientHello(input_buffer& input, SSL& ssl)
|
|||
input.read(len, sizeof(len));
|
||||
uint16 randomLen;
|
||||
ato16(len, randomLen);
|
||||
if (ch.suite_len_ > MAX_SUITE_SZ || sessionLen > ID_LEN ||
|
||||
randomLen > RAN_LEN) {
|
||||
ssl.SetError(bad_input);
|
||||
return;
|
||||
}
|
||||
|
||||
int j = 0;
|
||||
for (uint16 i = 0; i < ch.suite_len_; i += 3) {
|
||||
|
|
|
@ -101,6 +101,7 @@ template void ysArrayDelete<unsigned char>(unsigned char*);
|
|||
template void ysArrayDelete<char>(char*);
|
||||
|
||||
template int min<int>(int, int);
|
||||
template uint16 min<uint16>(uint16, uint16);
|
||||
template unsigned int min<unsigned int>(unsigned int, unsigned int);
|
||||
template unsigned long min<unsigned long>(unsigned long, unsigned long);
|
||||
}
|
||||
|
|
|
@ -621,6 +621,10 @@ void HandShakeHeader::Process(input_buffer& input, SSL& ssl)
|
|||
}
|
||||
|
||||
uint len = c24to32(length_);
|
||||
if (len > input.get_remaining()) {
|
||||
ssl.SetError(bad_input);
|
||||
return;
|
||||
}
|
||||
hashHandShake(ssl, input, len);
|
||||
|
||||
hs->set_length(len);
|
||||
|
@ -1391,10 +1395,15 @@ input_buffer& operator>>(input_buffer& input, ClientHello& hello)
|
|||
|
||||
// Suites
|
||||
byte tmp[2];
|
||||
uint16 len;
|
||||
tmp[0] = input[AUTO];
|
||||
tmp[1] = input[AUTO];
|
||||
ato16(tmp, hello.suite_len_);
|
||||
ato16(tmp, len);
|
||||
|
||||
hello.suite_len_ = min(len, static_cast<uint16>(MAX_SUITE_SZ));
|
||||
input.read(hello.cipher_suites_, hello.suite_len_);
|
||||
if (len > hello.suite_len_) // ignore extra suites
|
||||
input.set_current(input.get_current() + len - hello.suite_len_);
|
||||
|
||||
// Compression
|
||||
hello.comp_len_ = input[AUTO];
|
||||
|
|
Loading…
Reference in a new issue