From: Rico Tzschichholz Date: Tue, 2 Feb 2021 09:34:54 +0000 (+0100) Subject: codegen: Don't leak array memory after it was implicitly copied X-Git-Tag: 0.51.1~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=105f1c3258fd896fdbaa462a836283d3a3dd06a6;p=thirdparty%2Fvala.git codegen: Don't leak array memory after it was implicitly copied Found by -fsanitize=address --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index 61e831ff9..cb4550942 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -6154,6 +6154,11 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { Report.error (node.source_reference, "missing class prerequisite for interface `%s', add GLib.Object to interface declaration if unsure", target_type.type_symbol.get_full_name ()); return result; } + // need to free old array after copying it + if (array_needs_copy && requires_destroy (type)) { + result.value_type = type.copy (); + ccode.add_expression (destroy_value (result)); + } result = copy; // implicit array copying is deprecated, but allow it for internal codegen usage