Increase the maximum printing depth from 256 to 10000 (fixes #3413) (#3414)

This commit is contained in:
Ish Nagy
2025-10-14 14:12:57 +09:00
committed by GitHub
parent 589a6947fa
commit b29504b4e1
3 changed files with 21 additions and 2 deletions
+1 -1
View File
@@ -237,7 +237,7 @@ jobs:
--disable-shared \
--enable-static \
--enable-all-static \
CFLAGS="-O2 -pthread -fstack-protector-all"
CFLAGS="-O2 -pthread -fstack-protector-all -Wl,--stack,8388608"
make -j$(nproc)
file ./jq.exe
cp ./jq.exe jq-${{ env.SUFFIX }}.exe
+1 -1
View File
@@ -17,7 +17,7 @@
#include "jv_private.h"
#ifndef MAX_PRINT_DEPTH
#define MAX_PRINT_DEPTH (256)
#define MAX_PRINT_DEPTH (10000)
#endif
#define ESC "\033"
+19
View File
@@ -2515,3 +2515,22 @@ strflocaltime("" | ., @uri)
0
""
""
# regression tests for #3413
# upper range bounds should be in sync with the constants defined at
# src/jv_parse.c:#define MAX_PARSING_DEPTH (N)
# src/jv_print.c:#define MAX_PRINT_DEPTH (N)
# (N-1)
reduce range(9999) as $_ ([];[.]) | tojson | fromjson | flatten
null
[]
# (N)
reduce range(10000) as $_ ([];[.]) | tojson | try (fromjson) catch . | (contains("<skipped: too deep>") | not) and contains("Exceeds depth limit for parsing")
null
true
# (N+1)
reduce range(10001) as $_ ([];[.]) | tojson | contains("<skipped: too deep>")
null
true