summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-05-12 19:54:47 -0700
committerKaz Kylheku <kaz@kylheku.com>2023-05-12 19:54:47 -0700
commit5162fde5237ce801f74e8db2bc680f72f00fb0ce (patch)
tree729aa6955e623211520b3fd3839e6be0a345b3e8 /stdlib
parentd4e7b8644f1824b268cb738d11cecba07b0bf9b2 (diff)
downloadtxr-5162fde5237ce801f74e8db2bc680f72f00fb0ce.tar.gz
txr-5162fde5237ce801f74e8db2bc680f72f00fb0ce.tar.bz2
txr-5162fde5237ce801f74e8db2bc680f72f00fb0ce.zip
fix crash if built-in variable is unbound.
We use lookup_var_l in many places to look up the current dynamic value of a built-in variable such as *stdout*. Those places assume that a a valid location is returned which can be subject to a deref. If the application calls makunbound to remove such a variable, that deref will crash due to a null pointer dereference. Possible repro steps are numerous, possible for many variables. One example: (makunbound '*stdout*) (put-line) * eval.c (lookukp_var_l): If the binding is not found, do not return a nulloc, but throw an error exception.
Diffstat (limited to 'stdlib')
0 files changed, 0 insertions, 0 deletions