From 1b974379c8e92047202c742f8658a0831e0656c9 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 8 Jul 2020 17:57:40 +0200 Subject: [PATCH] UIDefaultsLoader: check for endless recursion in resolveValue() --- .../src/main/java/com/formdev/flatlaf/UIDefaultsLoader.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/UIDefaultsLoader.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/UIDefaultsLoader.java index 6abf6253..7d2340ba 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/UIDefaultsLoader.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/UIDefaultsLoader.java @@ -212,6 +212,7 @@ class UIDefaultsLoader static String resolveValue( String value, Function propertiesGetter ) { value = value.trim(); + String value0 = value; if( value.startsWith( PROPERTY_PREFIX ) ) value = value.substring( PROPERTY_PREFIX.length() ); @@ -232,6 +233,9 @@ class UIDefaultsLoader throw new IllegalArgumentException( "variable or property '" + value + "' not found" ); } + if( newValue.equals( value0 ) ) + throw new IllegalArgumentException( "endless recursion in variable or property '" + value + "'" ); + return resolveValue( newValue, propertiesGetter ); }