From a417884173df32d27e489b418d26101085de81bd Mon Sep 17 00:00:00 2001 From: Max Schaefer Date: Thu, 20 Jun 2019 17:01:43 +0100 Subject: [PATCH] JavaScript: Fix potential null-pointer exception in YAML extractor. `ScalarEvent.getStyle()` is documented as returning `null` for plain scalars, so we need to handle that specially (cf https://github.com/Semmle/ql/blob/master/javascript/ql/src/semmle/javascript/YAML.qll#L100 for the corresponding code in the library, which expects plain style to be encoded as zero). --- .../extractor/src/com/semmle/js/extractor/YAMLExtractor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java index 0fa9f2a371b..c1917492fb2 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java @@ -166,8 +166,10 @@ public class YAMLExtractor implements IExtractor { NodeId.scalar, scalar.getValue(), scalar.getImplicit().canOmitTagInPlainScalar()); + Character style = scalar.getStyle(); + int styleCode = style == null ? 0 : (int) style; trapWriter.addTuple( - YAMLTables.YAML_SCALARS, label, (int) scalar.getStyle(), scalar.getValue()); + YAMLTables.YAML_SCALARS, label, styleCode, scalar.getValue()); } else if (start.is(Event.ID.SequenceStart)) { kind = NodeKind.SEQUENCE; SequenceStartEvent sequenceStart = (SequenceStartEvent) start;