diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-10-18 15:14:39 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-10-18 15:14:39 +0200 |
commit | da4503e956ee067947e504c6e73052d9d906742c (patch) | |
tree | a70bbc33f0411ef29c347a570d8253445d8013e4 /extra/yassl/src/yassl_int.cpp | |
parent | babbf8c6fc6da92cd1b2bb23f04e996f84b0ca1a (diff) | |
parent | b000e169562697aa072600695d4f0c0412f94f4f (diff) | |
download | mariadb-git-da4503e956ee067947e504c6e73052d9d906742c.tar.gz |
Merge branch '5.5' into 10.0
Diffstat (limited to 'extra/yassl/src/yassl_int.cpp')
-rw-r--r-- | extra/yassl/src/yassl_int.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp index ff9c8155d0c..884e8b5fa9d 100644 --- a/extra/yassl/src/yassl_int.cpp +++ b/extra/yassl/src/yassl_int.cpp @@ -1,5 +1,5 @@ /* - Copyright (c) 2005, 2014, Oracle and/or its affiliates + Copyright (c) 2005, 2017, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1399,12 +1399,17 @@ void SSL::matchSuite(const opaque* peer, uint length) // start with best, if a match we are good, Ciphers are at odd index // since all SSL and TLS ciphers have 0x00 first byte for (uint i = 1; i < secure_.get_parms().suites_size_; i += 2) - for (uint j = 1; j < length; j+= 2) - if (secure_.use_parms().suites_[i] == peer[j]) { + for (uint j = 0; (j + 1) < length; j+= 2) { + if (peer[j] != 0x00) { + continue; // only 0x00 first byte supported + } + + if (secure_.use_parms().suites_[i] == peer[j + 1]) { secure_.use_parms().suite_[0] = 0x00; - secure_.use_parms().suite_[1] = peer[j]; + secure_.use_parms().suite_[1] = peer[j + 1]; return; } + } SetError(match_error); } @@ -2697,4 +2702,3 @@ extern "C" void yaSSL_CleanUp() yaSSL::sessionsInstance = 0; yaSSL::errorsInstance = 0; } - |