From 326c7af4ebdda726c2adf6c0c10c0ea89126c8ba Mon Sep 17 00:00:00 2001 From: Asger Feldthaus Date: Mon, 29 Jun 2020 15:49:07 +0100 Subject: [PATCH 1/2] JS: Fix incorrect classification of Vue files --- javascript/ql/src/filters/ClassifyFiles.qll | 4 +++- javascript/ql/src/semmle/javascript/GeneratedCode.qll | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/filters/ClassifyFiles.qll b/javascript/ql/src/filters/ClassifyFiles.qll index e59b13943b7..8e8831d45b2 100644 --- a/javascript/ql/src/filters/ClassifyFiles.qll +++ b/javascript/ql/src/filters/ClassifyFiles.qll @@ -80,6 +80,8 @@ predicate classify(File f, string category) { or // Polymer templates exists(HTML::Element elt | elt.getName() = "template" | - f = elt.getFile() and category = "template" + f = elt.getFile() and + category = "template" and + not f.getExtension() = "vue" ) } diff --git a/javascript/ql/src/semmle/javascript/GeneratedCode.qll b/javascript/ql/src/semmle/javascript/GeneratedCode.qll index e2f8e81d3c9..8ff3f3967a8 100644 --- a/javascript/ql/src/semmle/javascript/GeneratedCode.qll +++ b/javascript/ql/src/semmle/javascript/GeneratedCode.qll @@ -164,7 +164,10 @@ private int countStartingHtmlElements(File f, int l) { /** * Holds if the base name of `f` is a number followed by a single extension. */ -predicate isGeneratedFileName(File f) { f.getStem().regexpMatch("[0-9]+") } +predicate isGeneratedFileName(File f) { + f.getStem().regexpMatch("[0-9]+") and + not f.getExtension() = "vue" +} /** * Holds if `tl` looks like it contains generated code. From cb12d894a6a3831521cdfa52680b5ef388ee7e22 Mon Sep 17 00:00:00 2001 From: Asger Feldthaus Date: Mon, 29 Jun 2020 15:54:06 +0100 Subject: [PATCH 2/2] JS: Add test --- .../test/query-tests/filters/ClassifyFiles/MyComponent.vue | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 javascript/ql/test/query-tests/filters/ClassifyFiles/MyComponent.vue diff --git a/javascript/ql/test/query-tests/filters/ClassifyFiles/MyComponent.vue b/javascript/ql/test/query-tests/filters/ClassifyFiles/MyComponent.vue new file mode 100644 index 00000000000..d6696449ddd --- /dev/null +++ b/javascript/ql/test/query-tests/filters/ClassifyFiles/MyComponent.vue @@ -0,0 +1,6 @@ + +