Ticket #17746: 17746.patch
File 17746.patch, 1.6 KB (added by , 5 years ago) |
---|
-
src/org/openstreetmap/josm/data/osm/search/SearchCompiler.java
36 36 import org.openstreetmap.josm.data.osm.search.PushbackTokenizer.Token; 37 37 import org.openstreetmap.josm.data.projection.ProjectionRegistry; 38 38 import org.openstreetmap.josm.gui.mappaint.Environment; 39 import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSRule.Declaration; 39 40 import org.openstreetmap.josm.gui.mappaint.mapcss.Selector; 40 41 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser; 41 42 import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.ParseException; … … 1995 1996 1996 1997 static Match compileMapCSS(String mapCSS) throws SearchParseError { 1997 1998 try { 1998 final List<Selector> selectors = new MapCSSParser(new StringReader(mapCSS)).selectors(); 1999 // see #17746: detect invalid selector by adding test declaring 2000 MapCSSParser parser = new MapCSSParser(new StringReader(mapCSS + "{set test;}")); 2001 final List<Selector> selectors = parser.selectors(); 2002 Declaration decl = parser.declaration(); 2003 if (decl.instructions.size() != 1 || !"test: true;".equals(decl.instructions.iterator().next().toString())) { 2004 throw new SearchParseError(tr("Failed to parse MapCSS selector")); 2005 } 2006 1999 2007 return new Match() { 2000 2008 @Override 2001 2009 public boolean match(OsmPrimitive osm) {