Package: jq / 1.6-2.1+deb12u1

stack-exhaustion.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From: W-Mark Kubacki <wmark@hurrikane.de>
Date: Fri, 19 Aug 2016 19:50:39 +0200
Subject: [PATCH] Skip printing at MAX_DEPTH and deeper

This addresses #1136, and mitigates a stack exhaustion when printing
a very deeply nested term.
---
 src/jv_print.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/jv_print.c b/src/jv_print.c
index 5ebc01e..d7819b8 100644
--- a/src/jv_print.c
+++ b/src/jv_print.c
@@ -18,6 +18,10 @@
 #define MAX_PRINT_DEPTH (256)
 #endif
 
+#ifndef MAX_DEPTH
+#define MAX_DEPTH 256
+#endif
+
 #define ESC "\033"
 #define COL(c) (ESC "[" c "m")
 #define COLRESET (ESC "[0m")
@@ -201,8 +205,8 @@ static void jv_dump_term(struct dtoa_context* C, jv x, int flags, int indent, FI
       }
     }
   }
-  if (indent > MAX_PRINT_DEPTH) {
-    put_str("<skipped: too deep>", F, S, flags & JV_PRINT_ISATTY);
+  if (indent > MAX_DEPTH) {
+    put_str("<stripped: exceeds max depth>", F, S, flags & JV_PRINT_ISATTY);
   } else switch (jv_get_kind(x)) {
   default:
   case JV_KIND_INVALID: