diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ClosureLibrary.qll b/javascript/ql/lib/semmle/javascript/frameworks/ClosureLibrary.qll index b04064807d7..ef69d2a3c3f 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ClosureLibrary.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ClosureLibrary.qll @@ -13,38 +13,40 @@ module ClosureLibrary { call = Closure::moduleImport("goog.string." + name).getACall() and succ = call | pred = call.getAnArgument() and - ( - name = "canonicalizeNewlines" or - name = "capitalize" or - name = "collapseBreakingSpaces" or - name = "collapseWhitespace" or - name = "format" or - name = "makeSafe" or // makeSafe just guards against null and undefined - name = "newLineOrBr" or - name = "normalizeSpaces" or - name = "normalizeWhitespace" or - name = "preserveSpaces" or - name = "remove" or // removes first occurrence of a substring - name = "repeat" or - name = "splitLimit" or - name = "stripNewlines" or - name = "subs" or - name = "toCamelCase" or - name = "toSelectorCase" or - name = "toTitleCase" or - name = "trim" or - name = "trimLeft" or - name = "trimRight" or - name = "unescapeEntities" or - name = "whitespaceEscape" - ) + name = + [ + "canonicalizeNewlines", // + "capitalize", // + "collapseBreakingSpaces", // + "collapseWhitespace", // + "format", // + "makeSafe", // makeSafe just guards against null and undefined + "newLineOrBr", // + "normalizeSpaces", // + "normalizeWhitespace", // + "preserveSpaces", // + "remove", // removes first occurrence of a substring + "repeat", // + "splitLimit", // + "stripNewlines", // + "subs", // + "toCamelCase", // + "toSelectorCase", // + "toTitleCase", // + "trim", // + "trimLeft", // + "trimRight", // + "unescapeEntities", // + "whitespaceEscape" + ] or pred = call.getArgument(0) and - ( - name = "truncate" or - name = "truncateMiddle" or - name = "unescapeEntitiesWithDocument" - ) + name = + [ + "truncate", // + "truncateMiddle", // + "unescapeEntitiesWithDocument", // + ] ) } } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll b/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll index 5357259b9eb..6551ef469e0 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll @@ -362,29 +362,31 @@ private module ClosureLibraryUri { // static methods in goog.uri.utils arg = 0 and exists(string name | invoke = Closure::moduleImport("goog.uri.utils." + name).getACall() | - name = "appendParam" or // preserve taint from the original URI, but not from the appended param - name = "appendParams" or - name = "appendParamsFromMap" or - name = "appendPath" or - name = "getParamValue" or - name = "getParamValues" or - name = "getPath" or - name = "getPathAndAfter" or - name = "getQueryData" or - name = "parseQueryData" or - name = "removeFragment" or - name = "removeParam" or - name = "setParam" or - name = "setParamsFromMap" or - name = "setPath" or - name = "split" + name = + [ + "appendParam", // preserve taint from the original URI, but not from the appended param + "appendParams", // + "appendParamsFromMap", // + "appendPath", // + "getParamValue", // + "getParamValues", // + "getPath", // + "getPathAndAfter", // + "getQueryData", // + "parseQueryData", // + "removeFragment", // + "removeParam", // + "setParam", // + "setParamsFromMap", // + "setPath", // + "split", // + ] ) or // static methods in goog.string arg = 0 and exists(string name | invoke = Closure::moduleImport("goog.string." + name).getACall() | - name = "urlDecode" or - name = "urlEncode" + name = ["urlDecode", "urlEncode"] ) ) } diff --git a/javascript/ql/src/Expressions/StringInsteadOfRegex.ql b/javascript/ql/src/Expressions/StringInsteadOfRegex.ql index f1efb37e330..862700a32c2 100644 --- a/javascript/ql/src/Expressions/StringInsteadOfRegex.ql +++ b/javascript/ql/src/Expressions/StringInsteadOfRegex.ql @@ -14,13 +14,16 @@ import javascript * Gets a regular expression pattern that matches the syntax of likely regular expressions. */ private string getALikelyRegExpPattern() { - result = "/.*/[gimuy]{1,5}" or // pattern with at least one flag: /foo/i - result = "/\\^.*/[gimuy]{0,5}" or // pattern with anchor: /^foo/ - result = "/.*\\$/[gimuy]{0,5}" or // pattern with anchor: /foo$/ - result = "\\^.*\\$" or // pattern body with anchors: ^foo$ - result = ".*(?