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.
4 lines
107 B
Text
4 lines
107 B
Text
/-- error: (kernel) constant has already been declared 'X.rec' -/
|
|
#guard_msgs in
|
|
inductive X where
|
|
| rec
|