aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--picohttp.c5
-rw-r--r--picohttp_base64.c22
2 files changed, 14 insertions, 13 deletions
diff --git a/picohttp.c b/picohttp.c
index d813a3e..bfce031 100644
--- a/picohttp.c
+++ b/picohttp.c
@@ -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++) {