]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
base64: Try to avoid static analyzer warning
authorJouni Malinen <j@w1.fi>
Sat, 6 Dec 2014 17:03:52 +0000 (19:03 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 6 Dec 2014 17:26:56 +0000 (19:26 +0200)
Shift right on unsigned char limits the value to 0..63 which is within
bounds for base64_table[]. Anyway, some static analyzers do not seem to
understand that. See if an otherwise unnecessary masking gets rid of
false warnings. (CID 62858)

Signed-off-by: Jouni Malinen <j@w1.fi>
src/utils/base64.c

index af1307fc4e6502ece25bec4aa2426e7d9b8a171a..7366c30d3c5878c50cb52c2fad8e5ba5850bf701 100644 (file)
@@ -48,9 +48,11 @@ unsigned char * base64_encode(const unsigned char *src, size_t len,
        pos = out;
        line_len = 0;
        while (end - in >= 3) {
-               *pos++ = base64_table[in[0] >> 2];
-               *pos++ = base64_table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
-               *pos++ = base64_table[((in[1] & 0x0f) << 2) | (in[2] >> 6)];
+               *pos++ = base64_table[(in[0] >> 2) & 0x3f];
+               *pos++ = base64_table[(((in[0] & 0x03) << 4) |
+                                      (in[1] >> 4)) & 0x3f];
+               *pos++ = base64_table[(((in[1] & 0x0f) << 2) |
+                                      (in[2] >> 6)) & 0x3f];
                *pos++ = base64_table[in[2] & 0x3f];
                in += 3;
                line_len += 4;