mirror of
https://github.com/monero-project/monero.git
synced 2026-01-19 08:01:00 -08:00
low risk, potentially varint overflow bug patched thanks to BBR
This commit is contained in:
committed by
Thomas Winget
parent
5cd77a9f0b
commit
4e2b2b942d
@@ -36,7 +36,7 @@
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
/*! \file varint.h
|
||||
* \breif provides the implementation of varint's
|
||||
* \brief provides the implementation of varint's
|
||||
*
|
||||
* The representation of varints is rather odd. The first bit of each
|
||||
* octet is significant, it represents wheter there is another part
|
||||
@@ -52,6 +52,29 @@
|
||||
|
||||
namespace tools {
|
||||
|
||||
template<typename T>
|
||||
size_t get_varint_packed_size(T v)
|
||||
{
|
||||
if(v <= 127)
|
||||
return 1;
|
||||
else if(v <= 16383)
|
||||
return 2;
|
||||
else if(v <= 2097151)
|
||||
return 3;
|
||||
else if(v <= 268435455)
|
||||
return 4;
|
||||
else if(v <= 34359738367)
|
||||
return 5;
|
||||
else if(v <= 4398046511103)
|
||||
return 6;
|
||||
else if(v <= 4398046511103)
|
||||
return 6;
|
||||
else if(v <= 562949953421311)
|
||||
return 7;
|
||||
else
|
||||
return 8;
|
||||
}
|
||||
|
||||
/*! \brief Error codes for varint
|
||||
*/
|
||||
enum {
|
||||
|
||||
Reference in New Issue
Block a user