rt: Move the addition of the stack canary into create_stack
This commit is contained in:
@@ -13,12 +13,16 @@ struct stk_seg {
|
||||
uint8_t data[];
|
||||
};
|
||||
|
||||
void
|
||||
add_stack_canary(stk_seg *stk);
|
||||
|
||||
template <class T>
|
||||
stk_seg *
|
||||
create_stack(T allocer, size_t sz) {
|
||||
size_t total_sz = sizeof(stk_seg) + sz;
|
||||
stk_seg *stk = (stk_seg *)allocer->malloc(total_sz, "stack");
|
||||
memset(stk, 0, sizeof(stk_seg));
|
||||
add_stack_canary(stk);
|
||||
stk->end = (uintptr_t) &stk->data[sz];
|
||||
return stk;
|
||||
}
|
||||
@@ -35,9 +39,6 @@ config_valgrind_stack(stk_seg *stk);
|
||||
void
|
||||
unconfig_valgrind_stack(stk_seg *stk);
|
||||
|
||||
void
|
||||
add_stack_canary(stk_seg *stk);
|
||||
|
||||
void
|
||||
check_stack_canary(stk_seg *stk);
|
||||
|
||||
|
||||
@@ -593,7 +593,6 @@ rust_task::new_stack(size_t requested_sz) {
|
||||
size_t sz = rust_stk_sz + RED_ZONE_SIZE;
|
||||
stk_seg *new_stk = create_stack(this, sz);
|
||||
LOGPTR(thread, "new stk", (uintptr_t)new_stk);
|
||||
add_stack_canary(new_stk);
|
||||
new_stk->prev = NULL;
|
||||
new_stk->next = stk;
|
||||
LOGPTR(thread, "stk end", new_stk->end);
|
||||
|
||||
Reference in New Issue
Block a user