From 086390cbf9c80f0add6a4c748eb6094c8e5f7d0c Mon Sep 17 00:00:00 2001 From: Chris Frey Date: Thu, 9 Jan 2014 23:52:22 -0500 Subject: [PATCH] vformat.c: fixed incomplete base64_init() cppcheck noticed that memset() was passed a shortened size. Since the logic of base64_init() depends on a buffer at least 256 bytes long for buffer length safety, I simply hardcoded it and added a comment. --- src/vformat.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/vformat.c b/src/vformat.c index 8726df9a..0fc2bba5 100644 --- a/src/vformat.c +++ b/src/vformat.c @@ -1885,7 +1885,7 @@ static void base64_init(char *rank) { int i; - memset(rank, 0xff, sizeof(rank)); + memset(rank, 0xff, 256); for (i=0;i<64;i++) { rank[(unsigned int)base64_alphabet[i]] = i; } @@ -2010,6 +2010,8 @@ static size_t base64_encode_step(const unsigned char *in, size_t len, gboolean b **/ static size_t base64_decode_step(const unsigned char *in, size_t len, unsigned char *out, int *state, unsigned int *save) { + /* This buffer must be at least 256 bytes long, as base64_init() + depends on it. */ unsigned char base64_rank[256]; base64_init((char*)base64_rank); -- 2.11.4.GIT