lean4-htt/src/kernel
Markus Himmel 68409ef6fd
chore: turn some crashes into errors (#8402)
This PR prevents some nonsensical code from crashing the server.

Specifically, the kernel is changed to
- properly check that passed expressions do not contain loose bvars,
which could lead to a segmentation fault on a well-crafted input
(discovered through fuzzing), and
- check that constants generated when creating a new inductive type do
not overwrite each other, which could lead to the kernel taking
something out of the environment and then casting it to something it
isn't.

Partially addresses #8258, but let's keep that one open until the error
message is a little better.

Fixes #10492.
2025-09-24 13:04:18 +00:00
..
abstract.cpp
abstract.h
CMakeLists.txt perf: add lean_instantiate_level_mvars (#4910) 2024-08-04 18:31:44 +00:00
declaration.cpp fix: RecursorVal.getInduct to return name of major argument’s type (#5679) 2024-10-21 08:45:18 +00:00
declaration.h fix: RecursorVal.getInduct to return name of major argument’s type (#5679) 2024-10-21 08:45:18 +00:00
environment.cpp feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
environment.h perf: add missing std::moves (#9107) 2025-07-01 12:39:12 +00:00
equiv_manager.cpp
equiv_manager.h
expr.cpp feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
expr.h feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
expr_cache.cpp
expr_cache.h
expr_eq_fn.cpp feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
expr_eq_fn.h
expr_maps.h
expr_sets.h
find_fn.h
for_each_fn.cpp perf: optimize sorry detection in unused variables linter (#7129) 2025-02-22 16:43:39 +00:00
for_each_fn.h perf: for_each with precise cache (#4794) 2024-07-20 00:18:55 +00:00
inductive.cpp chore: turn some crashes into errors (#8402) 2025-09-24 13:04:18 +00:00
inductive.h chore: kernel changes ahead of String redefinition (#10330) 2025-09-17 09:12:07 +00:00
init_module.cpp fix: Windows needs more LEAN_EXPORTs 2024-08-12 14:14:42 +02:00
init_module.h fix: Windows needs more LEAN_EXPORTs 2024-08-12 14:14:42 +02:00
instantiate.cpp perf: instantiateExprMVars (#4915) 2024-08-05 17:15:22 +00:00
instantiate.h perf: instantiateExprMVars (#4915) 2024-08-05 17:15:22 +00:00
instantiate_mvars.cpp chore: fix spelling mistakes in non-Lean files (#5430) 2024-09-23 21:11:20 +00:00
kernel_exception.h feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
level.cpp fix: block potential adversarial exploit of non-aborting assert! (#8560) 2025-05-31 03:14:01 +00:00
level.h perf: add lean_instantiate_level_mvars (#4910) 2024-08-04 18:31:44 +00:00
local_ctx.cpp
local_ctx.h perf: fix implementation of move constructors and move assignment ope… (#4700) 2024-08-02 17:55:03 +00:00
quot.cpp
quot.h fix: quot reduction bug 2023-10-11 21:25:34 -07:00
replace_fn.cpp perf: use mimalloc with important C++ hash maps (#7868) 2025-04-11 16:23:33 +00:00
replace_fn.h
trace.cpp feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
trace.h feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
type_checker.cpp chore: turn some crashes into errors (#8402) 2025-09-24 13:04:18 +00:00
type_checker.h feat: kernel hint for proof-by-reflection (#9865) 2025-08-12 19:24:47 +00:00