From 48108e388ed148c873b7437061e8106baf5e0b5e Mon Sep 17 00:00:00 2001 From: Auke van Leeuwen Date: Mon, 30 Apr 2018 14:03:41 +0200 Subject: [PATCH] Prevent StackOverflowErrors when parsing the key property list (#269) Fixes #267 Signed-off-by: Auke van Leeuwen --- .../java/io/prometheus/jmx/JmxMBeanPropertyCache.java | 8 ++------ .../java/io/prometheus/jmx/JmxMBeanPropertyCacheTest.java | 2 -- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/collector/src/main/java/io/prometheus/jmx/JmxMBeanPropertyCache.java b/collector/src/main/java/io/prometheus/jmx/JmxMBeanPropertyCache.java index ad2c6060..01f8530b 100644 --- a/collector/src/main/java/io/prometheus/jmx/JmxMBeanPropertyCache.java +++ b/collector/src/main/java/io/prometheus/jmx/JmxMBeanPropertyCache.java @@ -19,12 +19,8 @@ class JmxMBeanPropertyCache { "(" + // Either "\"" + // Quoted "(?:" + // A possibly empty sequence of - "[^\\\\\"]" + // Anything but backslash or quote - "|\\\\\\\\" + // or an escaped backslash - "|\\\\n" + // or an escaped newline - "|\\\\\"" + // or an escaped quote - "|\\\\\\?" + // or an escaped question mark - "|\\\\\\*" + // or an escaped star + "[^\\\\\"]*" + // Greedily match anything but backslash or quote + "(?:\\\\.)?" + // Greedily see if we can match an escaped sequence ")*" + "\"" + "|" + // Or diff --git a/collector/src/test/java/io/prometheus/jmx/JmxMBeanPropertyCacheTest.java b/collector/src/test/java/io/prometheus/jmx/JmxMBeanPropertyCacheTest.java index 1a32e998..59b3728a 100644 --- a/collector/src/test/java/io/prometheus/jmx/JmxMBeanPropertyCacheTest.java +++ b/collector/src/test/java/io/prometheus/jmx/JmxMBeanPropertyCacheTest.java @@ -1,9 +1,7 @@ package io.prometheus.jmx; -import org.junit.Assert; import org.junit.Test; -import javax.management.ObjectInstance; import javax.management.ObjectName; import java.util.*;