From b7a4605e4416907762acd423d2213f63ebbeb466 Mon Sep 17 00:00:00 2001 From: Project Nayuki Date: Mon, 17 Apr 2017 02:02:33 +0000 Subject: [PATCH] Fixed potential overflow in C++ code, in worst case when int type is int16. --- cpp/QrCode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/QrCode.cpp b/cpp/QrCode.cpp index 7180351..b732ecb 100644 --- a/cpp/QrCode.cpp +++ b/cpp/QrCode.cpp @@ -258,7 +258,7 @@ void qrcodegen::QrCode::drawVersion() { int rem = version; // version is uint6, in the range [7, 40] for (int i = 0; i < 12; i++) rem = (rem << 1) ^ ((rem >> 11) * 0x1F25); - int data = version << 12 | rem; // uint18 + long data = (long)version << 12 | rem; // uint18 if (data >> 18 != 0) throw "Assertion error";