2
0
Эх сурвалжийг харах

fix a segfault when incomplete types array resizes while processing

Laytan Laats 1 жил өмнө
parent
commit
915f63b3f9

+ 3 - 1
src/llvm_backend_debug.cpp

@@ -652,7 +652,9 @@ gb_internal void lb_debug_complete_types(lbModule *m) {
 	for_array(debug_incomplete_type_index, m->debug_incomplete_types) {
 		TEMPORARY_ALLOCATOR_GUARD();
 
-		auto const &idt = m->debug_incomplete_types[debug_incomplete_type_index];
+		// NOTE(laytan): don't make this a pointer, the array could resize while in this iteration
+ 		// and cause a use-after-free at the end.
+		auto const idt = m->debug_incomplete_types[debug_incomplete_type_index];
 		GB_ASSERT(idt.type != nullptr);
 		GB_ASSERT(idt.metadata != nullptr);