Преглед изворни кода

Merge pull request #189 from tevador/pr-set-cache

Fix potential use-after-free when reallocating cache
tevador пре 6 година
родитељ
комит
6a4afc721f
2 измењених фајлова са 4 додато и 1 уклоњено
  1. 1 1
      src/randomx.cpp
  2. 3 0
      src/virtual_machine.hpp

+ 1 - 1
src/randomx.cpp

@@ -329,7 +329,7 @@ extern "C" {
 	void randomx_vm_set_cache(randomx_vm *machine, randomx_cache* cache) {
 		assert(machine != nullptr);
 		assert(cache != nullptr && cache->isInitialized());
-		if (machine->cacheKey != cache->cacheKey) {
+		if (machine->cacheKey != cache->cacheKey || machine->getMemory() != cache->memory) {
 			machine->setCache(cache);
 			machine->cacheKey = cache->cacheKey;
 		}

+ 3 - 0
src/virtual_machine.hpp

@@ -54,6 +54,9 @@ public:
 	{
 		return program;
 	}
+	const uint8_t* getMemory() const {
+		return mem.memory;
+	}
 protected:
 	void initialize();
 	alignas(64) randomx::Program program;