Commit 81add96b authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

src: Fix bug in get_uint64

parent 020e66b9
......@@ -1158,7 +1158,7 @@ uint64_t get_uint64(const uint8_t *data) {
n += static_cast<uint64_t>(data[1]) << 48;
n += static_cast<uint64_t>(data[2]) << 40;
n += static_cast<uint64_t>(data[3]) << 32;
n += data[4] << 24;
n += static_cast<uint64_t>(data[4]) << 24;
n += data[5] << 16;
n += data[6] << 8;
n += data[7];
......
......@@ -394,12 +394,22 @@ void test_util_localtime_date(void) {
}
void test_util_get_uint64(void) {
auto v = std::array<unsigned char, 8>{
{0x01, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xab, 0xbc}};
{
auto v = std::array<unsigned char, 8>{
{0x01, 0x12, 0x34, 0x56, 0xff, 0x9a, 0xab, 0xbc}};
auto n = util::get_uint64(v.data());
CU_ASSERT(0x01123456ff9aabbcULL == n);
}
{
auto v = std::array<unsigned char, 8>{
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}};
auto n = util::get_uint64(v.data());
auto n = util::get_uint64(v.data());
CU_ASSERT(0x01123456789aabbcULL == n);
CU_ASSERT(0xffffffffffffffffULL == n);
}
}
} // namespace shrpx
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment