diff --git a/lib/base64-decode.c b/lib/base64-decode.c index 3309b44c..4dfce67d 100644 --- a/lib/base64-decode.c +++ b/lib/base64-decode.c @@ -99,7 +99,7 @@ LWS_VISIBLE int lws_b64_decode_string(const char *in, char *out, int out_size) { int len; - int i; + int i, c; int done = 0; unsigned char v; unsigned char quad[4]; @@ -110,19 +110,19 @@ lws_b64_decode_string(const char *in, char *out, int out_size) for (i = 0; i < 4 && *in; i++) { v = 0; + c = 0; while (*in && !v) { - - v = *in++; + c = v = *in++; v = (v < 43 || v > 122) ? 0 : decode[v - 43]; if (v) v = (v == '$') ? 0 : v - 61; - if (*in) { - len++; - if (v) - quad[i] = v - 1; - } else - quad[i] = 0; } + if (c) { + len++; + if (v) + quad[i] = v - 1; + } else + quad[i] = 0; } if (out_size < (done + len - 1)) @@ -147,6 +147,7 @@ lws_b64_decode_string(const char *in, char *out, int out_size) return done; } +#if 0 int lws_b64_selftest(void) { @@ -183,3 +184,4 @@ lws_b64_selftest(void) return 0; } +#endif