From: Rico Tzschichholz Date: Wed, 19 Feb 2020 13:56:37 +0000 (+0100) Subject: vala: Prevent possible stack-overflow in Class.is_compact/is_immutable X-Git-Tag: 0.47.92~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fkeep-around%2F5dad5b3904450417b467a9a05210847c5a9a831b;p=thirdparty%2Fvala.git vala: Prevent possible stack-overflow in Class.is_compact/is_immutable Guard recursive call on base_class in is_compact and is_immutable by checking for cyclic class declaration. --- diff --git a/vala/valaclass.vala b/vala/valaclass.vala index c4f196c64..d5288a757 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -51,7 +51,7 @@ public class Vala.Class : ObjectTypeSymbol { public bool is_compact { get { if (_is_compact == null) { - if (base_class != null) { + if (base_class != null && !base_class.is_subtype_of (this)) { _is_compact = base_class.is_compact; } else { _is_compact = get_attribute ("Compact") != null; @@ -71,7 +71,7 @@ public class Vala.Class : ObjectTypeSymbol { public bool is_immutable { get { if (_is_immutable == null) { - if (base_class != null) { + if (base_class != null && !base_class.is_subtype_of (this)) { _is_immutable = base_class.is_immutable; } else { _is_immutable = get_attribute ("Immutable") != null;