From cabbf335824db0df835e4c541c19d3803ce38454 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 14 Sep 2022 21:30:11 +0300 Subject: add canary to kernel stack --- include/apos/canary.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 include/apos/canary.h (limited to 'include/apos/canary.h') diff --git a/include/apos/canary.h b/include/apos/canary.h new file mode 100644 index 0000000..30a3dd2 --- /dev/null +++ b/include/apos/canary.h @@ -0,0 +1,27 @@ +#ifndef APOS_CANARY_H +#define APOS_CANARY_H + +/** + * @file canary.h + * Kernel stack canary handling. + */ + +#include +#include + +/** + * Place canary at end of kernel stack. + * + * @param t \ref tcb whose kernel stack to place canary in. + */ +void set_canary(struct tcb *t); + +/** + * Check that canary hasn't been accidentally overwritten. + * + * @param t \ref tcb whose kernel stack canary to check. + * @return \ref true if overwritten, \ref false otherwise. + */ +bool check_canary(struct tcb *t); + +#endif /* APOS_CANARY_H */ -- cgit v1.3