diff options
-rw-r--r-- | picohttp.c | 5 | ||||
-rw-r--r-- | picohttp_base64.c | 22 |
2 files changed, 14 insertions, 13 deletions
@@ -826,7 +826,10 @@ static void picohttpProcessHeaderAuthorization( /* invalid chunk => abort the whole header */ return; } - for(size_t j=0; j < l && i < user_password_max_len; j++, i++) { + for(size_t j=0; + j < l + && i < user_password_max_len; + j++, i++) { user_password[i] = r[j]; } } diff --git a/picohttp_base64.c b/picohttp_base64.c index 1374bff..3411286 100644 --- a/picohttp_base64.c +++ b/picohttp_base64.c @@ -5,24 +5,22 @@ void phb64encode( size_t count, phb64enc_t enc) { - switch(count) { - default: break; - case 2: - enc[3] = 0xff; - case 1: - enc[2] = 0xff; - } + enc[1] = 0; + enc[3] = 0xff; + enc[2] = (count > 1) ? 0 : 0xff; + switch(count) { default: return; - case 4: - enc[3] |= ((raw[3] & 0x3f)); case 3: + enc[3] = ((raw[2] & 0x3f)); + enc[2] = ((raw[2] & 0xc0) >> 6); case 2: - enc[2] |= ((raw[2] & 0xc0) >> 6) | ((raw[1] & 0x0f) << 2); + enc[2] |= ((raw[1] & 0x0f) << 2); + enc[1] = ((raw[1] & 0xf0) >> 4); case 1: - enc[1] = ((raw[1] & 0xf0) >> 4) | ((raw[0] & 0x03) << 4); - enc[0] = ((raw[0] & 0xfc) >> 2); + enc[1] |= ((raw[0] & 0x03) << 4); + enc[0] = ((raw[0] & 0xfc) >> 2); } for(int i = 0; i < 4; i++) { |