From 698cb8406298ff289ba7abadf34abc3d09a07ef0 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Mon, 20 Feb 2023 11:09:32 +0100 Subject: [PATCH] Use ruby_xfree to free buffers They are allocated with ruby_xmalloc, they should be freed with ruby_xfree. --- ext/json/parser/parser.c | 8 ++++---- ext/json/parser/parser.rl | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c index 095dd99e50..bcd0816f90 100644 --- a/ext/json/parser/parser.c +++ b/ext/json/parser/parser.c @@ -1497,7 +1497,7 @@ static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int case 'u': if (pe > stringEnd - 4) { if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } rb_enc_raise( EXC_ENCODING eParserError, @@ -1510,7 +1510,7 @@ static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int pe++; if (pe > stringEnd - 6) { if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } rb_enc_raise( EXC_ENCODING eParserError, @@ -1555,13 +1555,13 @@ static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart)); } if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } # else result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart)); if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } if (intern) { diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl index 2602d91f55..e6d5d3c152 100644 --- a/ext/json/parser/parser.rl +++ b/ext/json/parser/parser.rl @@ -508,7 +508,7 @@ static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int case 'u': if (pe > stringEnd - 4) { if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } rb_enc_raise( EXC_ENCODING eParserError, @@ -521,7 +521,7 @@ static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int pe++; if (pe > stringEnd - 6) { if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } rb_enc_raise( EXC_ENCODING eParserError, @@ -566,13 +566,13 @@ static VALUE json_string_unescape(char *string, char *stringEnd, int intern, int result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart)); } if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } # else result = rb_utf8_str_new(bufferStart, (long)(buffer - bufferStart)); if (bufferSize > MAX_STACK_BUFFER_SIZE) { - free(bufferStart); + ruby_xfree(bufferStart); } if (intern) {