Skip to content
Snippets Groups Projects
Commit 8007cc68 authored by Andy Green's avatar Andy Green
Browse files

b64decode correct decode of some strings

parent 7bc87ab6
No related branches found
No related tags found
No related merge requests found
...@@ -99,7 +99,7 @@ LWS_VISIBLE int ...@@ -99,7 +99,7 @@ LWS_VISIBLE int
lws_b64_decode_string(const char *in, char *out, int out_size) lws_b64_decode_string(const char *in, char *out, int out_size)
{ {
int len; int len;
int i; int i, c;
int done = 0; int done = 0;
unsigned char v; unsigned char v;
unsigned char quad[4]; unsigned char quad[4];
...@@ -110,20 +110,20 @@ lws_b64_decode_string(const char *in, char *out, int out_size) ...@@ -110,20 +110,20 @@ lws_b64_decode_string(const char *in, char *out, int out_size)
for (i = 0; i < 4 && *in; i++) { for (i = 0; i < 4 && *in; i++) {
v = 0; v = 0;
c = 0;
while (*in && !v) { while (*in && !v) {
c = v = *in++;
v = *in++;
v = (v < 43 || v > 122) ? 0 : decode[v - 43]; v = (v < 43 || v > 122) ? 0 : decode[v - 43];
if (v) if (v)
v = (v == '$') ? 0 : v - 61; v = (v == '$') ? 0 : v - 61;
if (*in) { }
if (c) {
len++; len++;
if (v) if (v)
quad[i] = v - 1; quad[i] = v - 1;
} else } else
quad[i] = 0; quad[i] = 0;
} }
}
if (out_size < (done + len - 1)) if (out_size < (done + len - 1))
/* out buffer is too small */ /* out buffer is too small */
...@@ -147,6 +147,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size) ...@@ -147,6 +147,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size)
return done; return done;
} }
#if 0
int int
lws_b64_selftest(void) lws_b64_selftest(void)
{ {
...@@ -183,3 +184,4 @@ lws_b64_selftest(void) ...@@ -183,3 +184,4 @@ lws_b64_selftest(void)
return 0; return 0;
} }
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment