From 7e0c3ab641c75cf5078f03695e54f7c238aa057f Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Wed, 22 Mar 2017 23:31:12 +0200 Subject: src: fix base64 decoding Make sure trailing garbage is not treated as a valid base64 character. Fixes: https://github.com/nodejs/node/issues/11987 PR-URL: https://github.com/nodejs/node/pull/11995 Reviewed-By: Anna Henningsen --- src/base64.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/base64.h') diff --git a/src/base64.h b/src/base64.h index 64c4e330c0..92dc565e65 100644 --- a/src/base64.h +++ b/src/base64.h @@ -60,13 +60,13 @@ size_t base64_decode_slow(char* dst, size_t dstlen, size_t k = 0; for (;;) { #define V(expr) \ - while (i < srclen) { \ + for (;;) { \ const uint8_t c = src[i]; \ lo = unbase64(c); \ i += 1; \ if (lo < 64) \ break; /* Legal character. */ \ - if (c == '=') \ + if (c == '=' || i >= srclen) \ return k; \ } \ expr; \ -- cgit v1.2.3