summaryrefslogtreecommitdiff
path: root/ext/json/parser/parser.rl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/json/parser/parser.rl')
-rw-r--r--ext/json/parser/parser.rl4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/json/parser/parser.rl b/ext/json/parser/parser.rl
index a252b552c6..6ebb2f6fac 100644
--- a/ext/json/parser/parser.rl
+++ b/ext/json/parser/parser.rl
@@ -73,10 +73,12 @@ RBIMPL_ATTR_NORETURN()
#endif
static void raise_parse_error(const char *format, const char *start)
{
+ char buffer[PARSE_ERROR_FRAGMENT_LEN + 1];
+
size_t len = strnlen(start, PARSE_ERROR_FRAGMENT_LEN);
const char *ptr = start;
+
if (len == PARSE_ERROR_FRAGMENT_LEN) {
- char buffer[PARSE_ERROR_FRAGMENT_LEN + 1];
MEMCPY(buffer, start, char, PARSE_ERROR_FRAGMENT_LEN);
buffer[PARSE_ERROR_FRAGMENT_LEN] = '\0';
ptr = buffer;