Cheng Shao pushed to branch wip/terrorjack/asan at Glasgow Haskell Compiler / GHC
Commits:
-
8e24f49a
by Cheng Shao at 2025-12-30T01:16:20+01:00
-
0e3419d4
by Cheng Shao at 2025-12-30T01:16:20+01:00
2 changed files:
Changes:
| ... | ... | @@ -183,6 +183,7 @@ freeTask (Task *task) |
| 183 | 183 | stgFree(incall);
|
| 184 | 184 | }
|
| 185 | 185 | for (incall = task->spare_incalls; incall != NULL; incall = next) {
|
| 186 | + __ghc_asan_unpoison_memory_region(incall, sizeof(InCall));
|
|
| 186 | 187 | next = incall->next;
|
| 187 | 188 | stgFree(incall);
|
| 188 | 189 | }
|
| ... | ... | @@ -252,6 +253,7 @@ newInCall (Task *task) |
| 252 | 253 | |
| 253 | 254 | if (task->spare_incalls != NULL) {
|
| 254 | 255 | incall = task->spare_incalls;
|
| 256 | + __ghc_asan_unpoison_memory_region(incall, sizeof(InCall));
|
|
| 255 | 257 | task->spare_incalls = incall->next;
|
| 256 | 258 | task->n_spare_incalls--;
|
| 257 | 259 | } else {
|
| ... | ... | @@ -283,6 +285,7 @@ endInCall (Task *task) |
| 283 | 285 | stgFree(incall);
|
| 284 | 286 | } else {
|
| 285 | 287 | incall->next = task->spare_incalls;
|
| 288 | + __ghc_asan_poison_memory_region(incall, sizeof(InCall));
|
|
| 286 | 289 | task->spare_incalls = incall;
|
| 287 | 290 | task->n_spare_incalls++;
|
| 288 | 291 | }
|
| ... | ... | @@ -261,6 +261,8 @@ initGroup(bdescr *head) |
| 261 | 261 | head[i].flags = 0;
|
| 262 | 262 | }
|
| 263 | 263 | #endif
|
| 264 | + |
|
| 265 | + __ghc_asan_unpoison_memory_region(head->start, (W_)head->blocks * BLOCK_SIZE);
|
|
| 264 | 266 | }
|
| 265 | 267 | |
| 266 | 268 | #if SIZEOF_VOID_P == SIZEOF_LONG
|
| ... | ... | @@ -1052,6 +1054,8 @@ freeGroup(bdescr *p) |
| 1052 | 1054 | setup_tail(p);
|
| 1053 | 1055 | free_list_insert(node,p);
|
| 1054 | 1056 | |
| 1057 | + __ghc_asan_poison_memory_region(p->start, (W_)p->blocks * BLOCK_SIZE);
|
|
| 1058 | + |
|
| 1055 | 1059 | IF_DEBUG(sanity, checkFreeListSanity());
|
| 1056 | 1060 | }
|
| 1057 | 1061 |