mirror of
https://github.com/NixOS/nix.git
synced 2025-11-24 11:19:35 +01:00
libexpr: fix stack overflow in toJSON on deeply nested structures
Similar to the deepSeq fix, toJSON on deeply nested structures caused an uncontrolled OS-level stack overflow. Fix by adding call depth tracking to printValueAsJSON.
This commit is contained in:
parent
a812b6c6e6
commit
c7e1c612eb
5 changed files with 109 additions and 0 deletions
|
|
@ -0,0 +1,8 @@
|
|||
# Test that toJSON on a deeply nested structure produces a controlled
|
||||
# stack overflow error rather than a segfault.
|
||||
|
||||
let
|
||||
long = builtins.genList (x: x) 100000;
|
||||
reverseLinkedList = builtins.foldl' (tail: head: { inherit head tail; }) null long;
|
||||
in
|
||||
builtins.toJSON reverseLinkedList
|
||||
Loading…
Add table
Add a link
Reference in a new issue