From 7073c262b8c55f5094b43ca9a89b5eca7bb1ad4a Mon Sep 17 00:00:00 2001 From: Ervin Hegedus Date: Wed, 7 Feb 2024 23:08:46 +0100 Subject: [PATCH] Revert "Compatibility with libyajl decoding the buffer inline" --- apache2/msc_json.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apache2/msc_json.c b/apache2/msc_json.c index e9d0c99d..17f938b6 100644 --- a/apache2/msc_json.c +++ b/apache2/msc_json.c @@ -354,17 +354,15 @@ int json_init(modsec_rec *msr, char **error_msg) { int json_process_chunk(modsec_rec *msr, const char *buf, unsigned int size, char **error_msg) { if (error_msg == NULL) return -1; *error_msg = NULL; - // Take a copy in case libyajl decodes the buffer inline - base_offset = apr_pstrmemdup(msr->mp, buf, size); - if (!base_offset) return -1; + base_offset=buf; /* Feed our parser and catch any errors */ - msr->json->status = yajl_parse(msr->json->handle, (unsigned char*)base_offset, size); + msr->json->status = yajl_parse(msr->json->handle, buf, size); if (msr->json->status != yajl_status_ok) { if (msr->json->depth_limit_exceeded) { *error_msg = "JSON depth limit exceeded"; } else { - char *yajl_err = yajl_get_error(msr->json->handle, 0, base_offset, size); + char *yajl_err = yajl_get_error(msr->json->handle, 0, buf, size); *error_msg = apr_pstrdup(msr->mp, yajl_err); yajl_free_error(msr->json->handle, yajl_err); }