https://github.com/warmcat/libwebsockets/issues/467
Signed-off-by: Andy Green <andy@warmcat.com>
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];
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))
return done;
}
+#if 0
int
lws_b64_selftest(void)
{
return 0;
}
+#endif