]> git.kaiwu.me - njs.git/commitdiff
Fixed encoding matching for base64url in String.bytesFrom().
authorDisconnect3d <dominik.b.czarnota@gmail.com>
Tue, 22 Dec 2020 12:27:01 +0000 (13:27 +0100)
committerDisconnect3d <dominik.b.czarnota@gmail.com>
Tue, 22 Dec 2020 12:27:01 +0000 (13:27 +0100)
This closes #363 PR on GitHub.

src/njs_string.c
src/test/njs_unit_test.c

index 68e198d62c5ad2169d8a398f611608c4982b5cb9..f0159cdae1073d62dad9794af324562ae93c2432 100644 (file)
@@ -1753,7 +1753,7 @@ njs_string_bytes_from_string(njs_vm_t *vm, const njs_value_t *string,
     } else if (enc.length == 6 && memcmp(enc.start, "base64", 6) == 0) {
         return njs_string_decode_base64(vm, &vm->retval, &str);
 
-    } else if (enc.length == 9 && memcmp(enc.start, "base64url", 6) == 0) {
+    } else if (enc.length == 9 && memcmp(enc.start, "base64url", 9) == 0) {
         return njs_string_decode_base64url(vm, &vm->retval, &str);
     }
 
index 4b8b505596266a3cb6479e0c4287c61c36cb0eb8..5109d3a10dea3a7ce3c94c9c1415ba9a6c867ebb 100644 (file)
@@ -9016,6 +9016,9 @@ static njs_unit_test_t  njs_test[] =
     { njs_str("String.bytesFrom('QUJDRA#', 'base64url')"),
       njs_str("ABCD") },
 
+    { njs_str("String.bytesFrom('QUJDRA#', 'base64lol')"),
+      njs_str("TypeError: Unknown encoding: \"base64lol\"") },
+
     { njs_str("encodeURI.name"),
       njs_str("encodeURI")},