From cdbc0baac6f3a2169c555c475a230eff41c43137 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 6 Dec 2014 19:03:52 +0200 Subject: [PATCH] base64: Try to avoid static analyzer warning 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 --- src/utils/base64.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/utils/base64.c b/src/utils/base64.c index af1307fc4..7366c30d3 100644 --- a/src/utils/base64.c +++ b/src/utils/base64.c @@ -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;