瀏覽代碼

Merge pull request #83782 from timothyqiu/self-awareness

Fix heap-use-after-free when resource loaded with `load_threaded_request` is never fetched
Rémi Verschelde 1 年之前
父節點
當前提交
a1fd0b9d8a
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      core/io/resource_loader.cpp

+ 3 - 2
core/io/resource_loader.cpp

@@ -1053,8 +1053,9 @@ void ResourceLoader::clear_thread_load_tasks() {
 		thread_load_mutex.lock();
 	}
 
-	for (KeyValue<String, LoadToken *> &E : user_load_tokens) {
-		memdelete(E.value);
+	while (user_load_tokens.begin()) {
+		// User load tokens remove themselves from the map on destruction.
+		memdelete(user_load_tokens.begin()->value);
 	}
 	user_load_tokens.clear();