From 6473e14ba424f2996dac5b653fc2f5f6566ebe31 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Sat, 14 Nov 2026 08:34:27 +0100 Subject: [PATCH 1/2] script_safe: compare case insensitively Followup: https://github.com/ruby/json/pull/1141 --- ext/json/ext/generator/generator.c | 37 +++++++++++++++++++++++----- java/src/json/ext/StringEncoder.java | 32 ++++++++++++++++++++---- lib/json/truffle_ruby/generator.rb | 25 +++++-------------- test/json/json_generator_test.rb | 4 +++ 4 files changed, 68 insertions(+), 30 deletions(-) diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c index b334b993..21ee98b0 100644 --- a/ext/json/ext/generator/generator.c +++ b/ext/json/ext/generator/generator.c @@ -536,6 +536,36 @@ static const unsigned char script_safe_escape_table[256] = { 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 9, 9, }; +static inline bool unsafe_html_tag_p(const char *ptr, const char *end) +{ + size_t remaining = end - ptr; + + if (remaining < 4) { + return false; + } + + if (memcmp(ptr, "