1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 16:51:15 +02:00

allocate a GC root value for the Value cache pointer

keeping it as a simple data member means it won't be scanned by the GC, so
eventually the GC will collect a cache that is still referenced (resulting in
use-after-free of cache elements).

fixes #5962
This commit is contained in:
pennae 2022-01-22 21:17:35 +01:00
parent 5f08db69d1
commit fd5aa6ee3e
2 changed files with 11 additions and 6 deletions

View file

@ -133,7 +133,7 @@ private:
std::shared_ptr<RegexCache> regexCache;
/* Allocation cache for GC'd Value objects. */
void * valueAllocCache = nullptr;
std::shared_ptr<void *> valueAllocCache;
public: