From d557f547fa93a7fa52e588917ec5186a050b3da3 Mon Sep 17 00:00:00 2001 From: kezhenxu94 Date: Thu, 2 Dec 2021 22:08:40 +0800 Subject: [PATCH] Fix potential NPE in OAL string match and a bug when right-hand-side variable includes double quotes (#8234) --- CHANGES.md | 1 + .../core/analysis/metrics/expression/StringMatch.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index ea23d75eb0..1c943af606 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -10,6 +10,7 @@ Release Notes. #### OAP Server +* Fix potential NPE in OAL string match and a bug when right-hand-side variable includes double quotes. #### UI diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/StringMatch.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/StringMatch.java index d0b6b01825..9f931fb625 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/StringMatch.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/expression/StringMatch.java @@ -25,12 +25,12 @@ import org.apache.skywalking.oap.server.core.analysis.metrics.annotation.FilterM public class StringMatch { public boolean match(String left, String right) { - if (left.startsWith("\"") && left.endsWith("\"")) { + if (left != null && left.startsWith("\"") && left.endsWith("\"")) { left = left.substring(1, left.length() - 1); } - if (right.startsWith("\"") && right.endsWith("\"")) { - right = left.substring(1, right.length() - 1); + if (right != null && right.startsWith("\"") && right.endsWith("\"")) { + right = right.substring(1, right.length() - 1); } return Objects.equals(left, right);