From 8d67c079b472a0a5c786abb3ba7db5ad571b6aed Mon Sep 17 00:00:00 2001 From: cypherpunks Date: Wed, 25 May 2016 11:17:29 +0000 Subject: [PATCH] Fix integer overflows in the conversion tables --- changes/bug19168 | 3 +++ src/common/compat.c | 4 ++-- src/common/compat.h | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 changes/bug19168 diff --git a/changes/bug19168 b/changes/bug19168 new file mode 100644 index 0000000000..7bdfc50c54 --- /dev/null +++ b/changes/bug19168 @@ -0,0 +1,3 @@ + o Minor bugfixes (code correctness): + - Fix integer overflows in the case conversion tables. Fixes bug + 19168; bugfix on 0.2.1.11-alpha. diff --git a/src/common/compat.c b/src/common/compat.c index b2ed119358..4614ef94d5 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -645,7 +645,7 @@ const uint32_t TOR_ISLOWER_TABLE[8] = { 0, 0, 0, 0x7fffffe, 0, 0, 0, 0 }; /** Upper-casing and lowercasing tables to map characters to upper/lowercase * equivalents. Used by tor_toupper() and tor_tolower(). */ /**@{*/ -const char TOR_TOUPPER_TABLE[256] = { +const uint8_t TOR_TOUPPER_TABLE[256] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, @@ -663,7 +663,7 @@ const char TOR_TOUPPER_TABLE[256] = { 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255, }; -const char TOR_TOLOWER_TABLE[256] = { +const uint8_t TOR_TOLOWER_TABLE[256] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47, diff --git a/src/common/compat.h b/src/common/compat.h index 40bcb26df7..12f280d2e9 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -360,8 +360,8 @@ DECLARE_CTYPE_FN(ISXDIGIT) DECLARE_CTYPE_FN(ISPRINT) DECLARE_CTYPE_FN(ISLOWER) DECLARE_CTYPE_FN(ISUPPER) -extern const char TOR_TOUPPER_TABLE[]; -extern const char TOR_TOLOWER_TABLE[]; +extern const uint8_t TOR_TOUPPER_TABLE[]; +extern const uint8_t TOR_TOLOWER_TABLE[]; #define TOR_TOLOWER(c) (TOR_TOLOWER_TABLE[(uint8_t)c]) #define TOR_TOUPPER(c) (TOR_TOUPPER_TABLE[(uint8_t)c])