From: Rolf Eike Beer Date: Mon, 27 Jun 2016 10:55:51 +0000 Subject: fix base64 decoding on ARM X-Git-Url: http://quickgit.kde.org/?p=qca.git&a=commitdiff&h=601fd3a05141c614ae48a3ddac44194d669eaae1 --- fix base64 decoding on ARM This code was broken on ARM and other architectures where "char" is unsigned by default. First, it breaks with newer compilers with errors like: .../src/qca_textfilter.cpp:314:2: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] Second, if the compiler would just allow this conversion then the unsigned char would hold 255, which would not be sign extended when cast to an int later, so all the checks "< 0" will never trigger, and so invalid input characters cannot be detected. REVIEW:128295 BUG:364495 --- --- a/src/qca_textfilter.cpp +++ b/src/qca_textfilter.cpp @@ -293,7 +293,7 @@ // 64 specifies eof // everything else specifies data - static char tbl[] = + static signed char tbl[] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,