summaryrefslogtreecommitdiff
path: root/lib/ssl/src/ssl_record.hrl
diff options
context:
space:
mode:
authorDanil Zagoskin <z@gosk.in>2014-05-10 13:23:06 +0400
committerDanil Zagoskin <z@gosk.in>2014-05-10 13:23:06 +0400
commit4c34c06adc8709a6c13e2b5419e66582244040e6 (patch)
tree369b44b88c9cb829a577aadb43f5dd8c2b10784a /lib/ssl/src/ssl_record.hrl
parentaca0b6182b039333b4c963938878d9eecc85e5a1 (diff)
downloaderlang-4c34c06adc8709a6c13e2b5419e66582244040e6.tar.gz
ssl: fix max sequence number so it does not overflow
The old value of 18446744073709552000 was calculated using math:pow which returns float therefore isn't precise. And it would overflow: erlang:integer_to_list(18446744073709552000, 16) = "10000000000000180" This patch changes MAX_SEQENCE_NUMBER to value calculated with bitwise shift: (1 bsl 64) - 1 = 18446744073709551615
Diffstat (limited to 'lib/ssl/src/ssl_record.hrl')
-rw-r--r--lib/ssl/src/ssl_record.hrl2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ssl/src/ssl_record.hrl b/lib/ssl/src/ssl_record.hrl
index 87ed233c0a..6aab35d6da 100644
--- a/lib/ssl/src/ssl_record.hrl
+++ b/lib/ssl/src/ssl_record.hrl
@@ -70,7 +70,7 @@
-define(INITIAL_BYTES, 5).
--define(MAX_SEQENCE_NUMBER, 18446744073709552000). %% math:pow(2, 64) - 1 = 1.8446744073709552e19
+-define(MAX_SEQENCE_NUMBER, 18446744073709551615). %% (1 bsl 64) - 1 = 18446744073709551615
%% Sequence numbers can not wrap so when max is about to be reached we should renegotiate.
%% We will renegotiate a little before so that there will be sequence numbers left
%% for the rehandshake and a little data. Currently we decided to renegotiate a little more