From 34e8cdac91c8b7ea955957f2f2ab025b689d16fd Mon Sep 17 00:00:00 2001 From: KonAki Date: Tue, 13 Oct 2026 15:32:52 +0800 Subject: konjson: allocate strings by their own length --- kon/konjson.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'kon') diff --git a/kon/konjson.h b/kon/konjson.h index 1e95990..126736d 100644 --- a/kon/konjson.h +++ b/kon/konjson.h @@ -166,13 +166,16 @@ static int kon__jsonUtf8(char *out, unsigned cp) static char *kon__jsonString(kon_jsonParser_t *ps) { - const char *start; + const char *start, *scan; char *out; size_t n = 0; ps->p++; start = ps->p; - out = malloc((size_t)(ps->end - start) + 1); + for (scan = start; scan < ps->end && *scan != '"'; scan++) { + if (*scan == '\\' && scan + 1 < ps->end) scan++; + } + out = malloc((size_t)(scan - start) + 1); if (!out) { kon__jsonFail(ps, "out of memory"); return NULL; -- cgit