Include column numbers in location URLs
This commit is contained in:
@@ -142,5 +142,7 @@ export function tryGetRemoteLocation(
|
|||||||
fileLink,
|
fileLink,
|
||||||
resolvableLocation.startLine,
|
resolvableLocation.startLine,
|
||||||
resolvableLocation.endLine,
|
resolvableLocation.endLine,
|
||||||
|
resolvableLocation.startColumn,
|
||||||
|
resolvableLocation.endColumn,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,20 @@ export function createRemoteFileRef(
|
|||||||
fileLink: FileLink,
|
fileLink: FileLink,
|
||||||
startLine?: number,
|
startLine?: number,
|
||||||
endLine?: number,
|
endLine?: number,
|
||||||
|
startColumn?: number,
|
||||||
|
endColumn?: number,
|
||||||
): string {
|
): string {
|
||||||
if (startLine && endLine && startLine !== endLine) {
|
if (
|
||||||
|
startColumn &&
|
||||||
|
endColumn &&
|
||||||
|
startLine &&
|
||||||
|
endLine &&
|
||||||
|
// Verify that location information is valid; otherwise highlighting might be broken
|
||||||
|
((startLine === endLine && startColumn < endColumn) || startLine < endLine)
|
||||||
|
) {
|
||||||
|
// This relies on column highlighting of new code view on GitHub
|
||||||
|
return `${fileLink.fileLinkPrefix}/${fileLink.filePath}#L${startLine}C${startColumn}-L${endLine}C${endColumn}`;
|
||||||
|
} else if (startLine && endLine && startLine < endLine) {
|
||||||
return `${fileLink.fileLinkPrefix}/${fileLink.filePath}#L${startLine}-L${endLine}`;
|
return `${fileLink.fileLinkPrefix}/${fileLink.filePath}#L${startLine}-L${endLine}`;
|
||||||
} else if (startLine) {
|
} else if (startLine) {
|
||||||
return `${fileLink.fileLinkPrefix}/${fileLink.filePath}#L${startLine}`;
|
return `${fileLink.fileLinkPrefix}/${fileLink.filePath}#L${startLine}`;
|
||||||
|
|||||||
@@ -148,8 +148,7 @@ function generateMarkdownForInterpretedResult(
|
|||||||
lines.push(
|
lines.push(
|
||||||
createMarkdownRemoteFileRef(
|
createMarkdownRemoteFileRef(
|
||||||
interpretedResult.fileLink,
|
interpretedResult.fileLink,
|
||||||
interpretedResult.highlightedRegion?.startLine,
|
interpretedResult.highlightedRegion,
|
||||||
interpretedResult.highlightedRegion?.endLine,
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
lines.push("");
|
lines.push("");
|
||||||
@@ -250,8 +249,7 @@ function generateMarkdownForAlertMessage(
|
|||||||
} else if (token.t === "location") {
|
} else if (token.t === "location") {
|
||||||
alertMessage += createMarkdownRemoteFileRef(
|
alertMessage += createMarkdownRemoteFileRef(
|
||||||
token.location.fileLink,
|
token.location.fileLink,
|
||||||
token.location.highlightedRegion?.startLine,
|
token.location.highlightedRegion,
|
||||||
token.location.highlightedRegion?.endLine,
|
|
||||||
token.text,
|
token.text,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -275,8 +273,7 @@ function generateMarkdownForPathResults(
|
|||||||
const threadFlow = codeFlow.threadFlows[i];
|
const threadFlow = codeFlow.threadFlows[i];
|
||||||
const link = createMarkdownRemoteFileRef(
|
const link = createMarkdownRemoteFileRef(
|
||||||
threadFlow.fileLink,
|
threadFlow.fileLink,
|
||||||
threadFlow.highlightedRegion?.startLine,
|
threadFlow.highlightedRegion,
|
||||||
threadFlow.highlightedRegion?.endLine,
|
|
||||||
);
|
);
|
||||||
pathLines.push(`${listNumber}. ${link}`);
|
pathLines.push(`${listNumber}. ${link}`);
|
||||||
|
|
||||||
@@ -361,13 +358,18 @@ function generateMarkdownForRawTableCell(
|
|||||||
*/
|
*/
|
||||||
export function createMarkdownRemoteFileRef(
|
export function createMarkdownRemoteFileRef(
|
||||||
fileLink: FileLink,
|
fileLink: FileLink,
|
||||||
startLine?: number,
|
region?: HighlightedRegion,
|
||||||
endLine?: number,
|
|
||||||
linkText?: string,
|
linkText?: string,
|
||||||
): string {
|
): string {
|
||||||
const markdownLink = `[${
|
const markdownLink = `[${
|
||||||
linkText || fileLink.filePath
|
linkText || fileLink.filePath
|
||||||
}](${createRemoteFileRef(fileLink, startLine, endLine)})`;
|
}](${createRemoteFileRef(
|
||||||
|
fileLink,
|
||||||
|
region?.startLine,
|
||||||
|
region?.endLine,
|
||||||
|
region?.startColumn,
|
||||||
|
region?.endColumn,
|
||||||
|
)})`;
|
||||||
return markdownLink;
|
return markdownLink;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ export const CodeSnippetMessage = ({
|
|||||||
token.location.fileLink,
|
token.location.fileLink,
|
||||||
token.location.highlightedRegion?.startLine,
|
token.location.highlightedRegion?.startLine,
|
||||||
token.location.highlightedRegion?.endLine,
|
token.location.highlightedRegion?.endLine,
|
||||||
|
token.location.highlightedRegion?.startColumn,
|
||||||
|
token.location.highlightedRegion?.endColumn,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{token.text}
|
{token.text}
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ export const FileCodeSnippet = ({
|
|||||||
fileLink,
|
fileLink,
|
||||||
highlightedRegion?.startLine || startingLine,
|
highlightedRegion?.startLine || startingLine,
|
||||||
highlightedRegion?.endLine || endingLine,
|
highlightedRegion?.endLine || endingLine,
|
||||||
|
highlightedRegion?.startColumn,
|
||||||
|
highlightedRegion?.endColumn,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!codeSnippet) {
|
if (!codeSnippet) {
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ describe("getting links to remote (GitHub) locations", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(link).toEqual(
|
expect(link).toEqual(
|
||||||
"https://github.com/owner/repo/blob/sha1234/path/to/file.ext#L194-L237",
|
"https://github.com/owner/repo/blob/sha1234/path/to/file.ext#L194C18-L237C1",
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ describe("getting links to remote (GitHub) locations", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(link).toEqual(
|
expect(link).toEqual(
|
||||||
"https://github.com/owner/repo/blob/sha1234/path/to/file.ext#L194-L237",
|
"https://github.com/owner/repo/blob/sha1234/path/to/file.ext#L194C18-L237C1",
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
### github/codeql
|
### github/codeql
|
||||||
|
|
||||||
[javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L5)
|
[javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L5C15-L5C18)
|
||||||
|
|
||||||
<pre><code class="javascript">function cleanupTemp() {
|
<pre><code class="javascript">function cleanupTemp() {
|
||||||
let cmd = "rm -rf " + path.join(__dirname, "temp");
|
let cmd = "rm -rf " + path.join(__dirname, "temp");
|
||||||
@@ -8,14 +8,14 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4).*
|
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4C35-L4C44).*
|
||||||
|
|
||||||
#### Paths
|
#### Paths
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Path with 5 steps</summary>
|
<summary>Path with 5 steps</summary>
|
||||||
|
|
||||||
1. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4)
|
1. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4C35-L4C44)
|
||||||
<pre><code class="javascript"> path = require("path");
|
<pre><code class="javascript"> path = require("path");
|
||||||
function cleanupTemp() {
|
function cleanupTemp() {
|
||||||
let cmd = "rm -rf " + path.join(<strong>__dirname</strong>, "temp");
|
let cmd = "rm -rf " + path.join(<strong>__dirname</strong>, "temp");
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
2. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4)
|
2. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4C25-L4C53)
|
||||||
<pre><code class="javascript"> path = require("path");
|
<pre><code class="javascript"> path = require("path");
|
||||||
function cleanupTemp() {
|
function cleanupTemp() {
|
||||||
let cmd = "rm -rf " + <strong>path.join(__dirname, "temp")</strong>;
|
let cmd = "rm -rf " + <strong>path.join(__dirname, "temp")</strong>;
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
3. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4)
|
3. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4C13-L4C53)
|
||||||
<pre><code class="javascript"> path = require("path");
|
<pre><code class="javascript"> path = require("path");
|
||||||
function cleanupTemp() {
|
function cleanupTemp() {
|
||||||
let cmd = <strong>"rm -rf " + path.join(__dirname, "temp")</strong>;
|
let cmd = <strong>"rm -rf " + path.join(__dirname, "temp")</strong>;
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
4. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4)
|
4. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L4C7-L4C53)
|
||||||
<pre><code class="javascript"> path = require("path");
|
<pre><code class="javascript"> path = require("path");
|
||||||
function cleanupTemp() {
|
function cleanupTemp() {
|
||||||
let <strong>cmd = "rm -rf " + path.join(__dirname, "temp")</strong>;
|
let <strong>cmd = "rm -rf " + path.join(__dirname, "temp")</strong>;
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
5. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L5)
|
5. [javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/src/Security/CWE-078/examples/shell-command-injection-from-environment.js#L5C15-L5C18)
|
||||||
<pre><code class="javascript">function cleanupTemp() {
|
<pre><code class="javascript">function cleanupTemp() {
|
||||||
let cmd = "rm -rf " + path.join(__dirname, "temp");
|
let cmd = "rm -rf " + path.join(__dirname, "temp");
|
||||||
cp.execSync(<strong>cmd</strong>); // BAD
|
cp.execSync(<strong>cmd</strong>); // BAD
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6)
|
[javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6C14-L6C54)
|
||||||
|
|
||||||
<pre><code class="javascript">(function() {
|
<pre><code class="javascript">(function() {
|
||||||
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
||||||
@@ -67,14 +67,14 @@
|
|||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6).*
|
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6C36-L6C45).*
|
||||||
|
|
||||||
#### Paths
|
#### Paths
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Path with 3 steps</summary>
|
<summary>Path with 3 steps</summary>
|
||||||
|
|
||||||
1. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6)
|
1. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6C36-L6C45)
|
||||||
<pre><code class="javascript">(function() {
|
<pre><code class="javascript">(function() {
|
||||||
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
||||||
cp.execSync('rm -rf ' + path.join(<strong>__dirname</strong>, "temp")); // BAD
|
cp.execSync('rm -rf ' + path.join(<strong>__dirname</strong>, "temp")); // BAD
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
2. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6)
|
2. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6C26-L6C54)
|
||||||
<pre><code class="javascript">(function() {
|
<pre><code class="javascript">(function() {
|
||||||
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
||||||
cp.execSync('rm -rf ' + <strong>path.join(__dirname, "temp")</strong>); // BAD
|
cp.execSync('rm -rf ' + <strong>path.join(__dirname, "temp")</strong>); // BAD
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
3. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6)
|
3. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L6C14-L6C54)
|
||||||
<pre><code class="javascript">(function() {
|
<pre><code class="javascript">(function() {
|
||||||
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
cp.execFileSync('rm', ['-rf', path.join(__dirname, "temp")]); // GOOD
|
||||||
cp.execSync(<strong>'rm -rf ' + path.join(__dirname, "temp")</strong>); // BAD
|
cp.execSync(<strong>'rm -rf ' + path.join(__dirname, "temp")</strong>); // BAD
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8)
|
[javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8C14-L8C54)
|
||||||
|
|
||||||
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
||||||
|
|
||||||
@@ -111,14 +111,14 @@
|
|||||||
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8).*
|
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8C36-L8C45).*
|
||||||
|
|
||||||
#### Paths
|
#### Paths
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Path with 3 steps</summary>
|
<summary>Path with 3 steps</summary>
|
||||||
|
|
||||||
1. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8)
|
1. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8C36-L8C45)
|
||||||
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
||||||
|
|
||||||
execa.shell('rm -rf ' + path.join(<strong>__dirname</strong>, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(<strong>__dirname</strong>, "temp")); // NOT OK
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
2. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8)
|
2. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8C26-L8C54)
|
||||||
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
||||||
|
|
||||||
execa.shell('rm -rf ' + <strong>path.join(__dirname, "temp")</strong>); // NOT OK
|
execa.shell('rm -rf ' + <strong>path.join(__dirname, "temp")</strong>); // NOT OK
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
3. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8)
|
3. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L8C14-L8C54)
|
||||||
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
<pre><code class="javascript"> cp.execSync('rm -rf ' + path.join(__dirname, "temp")); // BAD
|
||||||
|
|
||||||
execa.shell(<strong>'rm -rf ' + path.join(__dirname, "temp")</strong>); // NOT OK
|
execa.shell(<strong>'rm -rf ' + path.join(__dirname, "temp")</strong>); // NOT OK
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9)
|
[javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9C18-L9C58)
|
||||||
|
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
@@ -155,14 +155,14 @@
|
|||||||
const safe = "\"" + path.join(__dirname, "temp") + "\"";
|
const safe = "\"" + path.join(__dirname, "temp") + "\"";
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9).*
|
*This shell command depends on an uncontrolled [absolute path](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9C40-L9C49).*
|
||||||
|
|
||||||
#### Paths
|
#### Paths
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Path with 3 steps</summary>
|
<summary>Path with 3 steps</summary>
|
||||||
|
|
||||||
1. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9)
|
1. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9C40-L9C49)
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
execa.shellSync('rm -rf ' + path.join(<strong>__dirname</strong>, "temp")); // NOT OK
|
execa.shellSync('rm -rf ' + path.join(<strong>__dirname</strong>, "temp")); // NOT OK
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
const safe = "\"" + path.join(__dirname, "temp") + "\"";
|
const safe = "\"" + path.join(__dirname, "temp") + "\"";
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
2. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9)
|
2. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9C30-L9C58)
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
execa.shellSync('rm -rf ' + <strong>path.join(__dirname, "temp")</strong>); // NOT OK
|
execa.shellSync('rm -rf ' + <strong>path.join(__dirname, "temp")</strong>); // NOT OK
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
const safe = "\"" + path.join(__dirname, "temp") + "\"";
|
const safe = "\"" + path.join(__dirname, "temp") + "\"";
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
3. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9)
|
3. [javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js](https://github.com/github/codeql/blob/48015e5a2e6202131f2d1062cc066dc33ed69a9b/javascript/ql/test/query-tests/Security/CWE-078/tst_shell-command-injection-from-environment.js#L9C18-L9C58)
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
execa.shell('rm -rf ' + path.join(__dirname, "temp")); // NOT OK
|
||||||
execa.shellSync(<strong>'rm -rf ' + path.join(__dirname, "temp")</strong>); // NOT OK
|
execa.shellSync(<strong>'rm -rf ' + path.join(__dirname, "temp")</strong>); // NOT OK
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
### meteor/meteor
|
### meteor/meteor
|
||||||
|
|
||||||
[npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
[npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C28-L259C62)
|
||||||
|
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
@@ -9,14 +9,14 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
*This shell command depends on an uncontrolled [absolute path](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39).*
|
*This shell command depends on an uncontrolled [absolute path](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39C20-L39C61).*
|
||||||
|
|
||||||
#### Paths
|
#### Paths
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Path with 11 steps</summary>
|
<summary>Path with 11 steps</summary>
|
||||||
|
|
||||||
1. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39)
|
1. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39C20-L39C61)
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
const meteorLocalFolder = '.meteor';
|
const meteorLocalFolder = '.meteor';
|
||||||
const meteorPath = <strong>path.resolve(rootPath, meteorLocalFolder)</strong>;
|
const meteorPath = <strong>path.resolve(rootPath, meteorLocalFolder)</strong>;
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
2. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39)
|
2. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39C7-L39C61)
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
const meteorLocalFolder = '.meteor';
|
const meteorLocalFolder = '.meteor';
|
||||||
const <strong>meteorPath = path.resolve(rootPath, meteorLocalFolder)</strong>;
|
const <strong>meteorPath = path.resolve(rootPath, meteorLocalFolder)</strong>;
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
3. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L44)
|
3. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L44C3-L44C13)
|
||||||
<pre><code class="javascript"> METEOR_LATEST_VERSION,
|
<pre><code class="javascript"> METEOR_LATEST_VERSION,
|
||||||
extractPath: rootPath,
|
extractPath: rootPath,
|
||||||
<strong>meteorPath</strong>,
|
<strong>meteorPath</strong>,
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
rootPath,
|
rootPath,
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
4. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L12)
|
4. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L12C3-L12C13)
|
||||||
<pre><code class="javascript">const os = require('os');
|
<pre><code class="javascript">const os = require('os');
|
||||||
const {
|
const {
|
||||||
<strong>meteorPath</strong>,
|
<strong>meteorPath</strong>,
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
startedPath,
|
startedPath,
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
5. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L11-L23)
|
5. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L11C7-L23C27)
|
||||||
<pre><code class="javascript">const tmp = require('tmp');
|
<pre><code class="javascript">const tmp = require('tmp');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const <strong>{</strong>
|
const <strong>{</strong>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
const {
|
const {
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
6. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
6. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C42-L259C52)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
7. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
7. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C42-L259C52)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
8. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
8. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C42-L259C52)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
9. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
9. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C42-L259C52)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
10. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
10. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C42-L259C52)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
child_process.execSync(`setx path "${<strong>meteorPath</strong>}/;%path%`);
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
}
|
}
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
11. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
11. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C28-L259C62)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(<strong>`setx path "${meteorPath}/;%path%`</strong>);
|
child_process.execSync(<strong>`setx path "${meteorPath}/;%path%`</strong>);
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
<details>
|
<details>
|
||||||
<summary>Path with 2 steps</summary>
|
<summary>Path with 2 steps</summary>
|
||||||
|
|
||||||
1. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39)
|
1. [npm-packages/meteor-installer/config.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/config.js#L39C20-L39C61)
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
const meteorLocalFolder = '.meteor';
|
const meteorLocalFolder = '.meteor';
|
||||||
const meteorPath = <strong>path.resolve(rootPath, meteorLocalFolder)</strong>;
|
const meteorPath = <strong>path.resolve(rootPath, meteorLocalFolder)</strong>;
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
2. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259)
|
2. [npm-packages/meteor-installer/install.js](https://github.com/meteor/meteor/blob/73b538fe201cbfe89dd0c709689023f9b3eab1ec/npm-packages/meteor-installer/install.js#L259C28-L259C62)
|
||||||
<pre><code class="javascript"> if (isWindows()) {
|
<pre><code class="javascript"> if (isWindows()) {
|
||||||
//set for the current session and beyond
|
//set for the current session and beyond
|
||||||
child_process.execSync(<strong>`setx path "${meteorPath}/;%path%`</strong>);
|
child_process.execSync(<strong>`setx path "${meteorPath}/;%path%`</strong>);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
### github/codeql
|
### github/codeql
|
||||||
|
|
||||||
[javascript/extractor/tests/regexp/input/multipart.js](https://github.com/github/codeql/blob/d094bbc06d063d0da8d0303676943c345e61de53/javascript/extractor/tests/regexp/input/multipart.js#L17-L20)
|
[javascript/extractor/tests/regexp/input/multipart.js](https://github.com/github/codeql/blob/d094bbc06d063d0da8d0303676943c345e61de53/javascript/extractor/tests/regexp/input/multipart.js#L17C6-L20C6)
|
||||||
|
|
||||||
<pre><code class="javascript">
|
<pre><code class="javascript">
|
||||||
var bad95 = new RegExp(
|
var bad95 = new RegExp(
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
### meteor/meteor
|
### meteor/meteor
|
||||||
|
|
||||||
[packages/deprecated/markdown/showdown.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/deprecated/markdown/showdown.js#L415)
|
[packages/deprecated/markdown/showdown.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/deprecated/markdown/showdown.js#L415C41-L415C48)
|
||||||
|
|
||||||
<pre><code class="javascript"> /g,hashElement);
|
<pre><code class="javascript"> /g,hashElement);
|
||||||
*/
|
*/
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[packages/deprecated/markdown/showdown.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/deprecated/markdown/showdown.js#L523)
|
[packages/deprecated/markdown/showdown.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/deprecated/markdown/showdown.js#L523C58-L523C61)
|
||||||
|
|
||||||
<pre><code class="javascript"> // Build a regex to find HTML tags and comments. See Friedl's
|
<pre><code class="javascript"> // Build a regex to find HTML tags and comments. See Friedl's
|
||||||
// "Mastering Regular Expressions", 2nd Ed., pp. 200-201.
|
// "Mastering Regular Expressions", 2nd Ed., pp. 200-201.
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[tools/tests/apps/modules/imports/links/acorn/src/parseutil.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/tools/tests/apps/modules/imports/links/acorn/src/parseutil.js#L9)
|
[tools/tests/apps/modules/imports/links/acorn/src/parseutil.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/tools/tests/apps/modules/imports/links/acorn/src/parseutil.js#L9C24-L9C38)
|
||||||
|
|
||||||
<pre><code class="javascript">// ## Parser utilities
|
<pre><code class="javascript">// ## Parser utilities
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ pp.strictDirective = function(start) {
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[tools/tests/apps/modules/imports/links/acorn/src/parseutil.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/tools/tests/apps/modules/imports/links/acorn/src/parseutil.js#L9)
|
[tools/tests/apps/modules/imports/links/acorn/src/parseutil.js](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/tools/tests/apps/modules/imports/links/acorn/src/parseutil.js#L9C43-L9C57)
|
||||||
|
|
||||||
<pre><code class="javascript">const literal = /^(?:'((?:\\.|[^'])*?)'|"(<strong>(?:\\.|[^"])*?</strong>)")/</code></pre>
|
<pre><code class="javascript">const literal = /^(?:'((?:\\.|[^'])*?)'|"(<strong>(?:\\.|[^"])*?</strong>)")/</code></pre>
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ pp.strictDirective = function(start) {
|
|||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
[app/src/main/AndroidManifest.xml](https://github.com/AlexRogalskiy/android-nrf-toolbox/blob/034cf3aa7d2a3a4145177de32546ca518a462a66/app/src/main/AndroidManifest.xml#L239-L249)
|
[app/src/main/AndroidManifest.xml](https://github.com/AlexRogalskiy/android-nrf-toolbox/blob/034cf3aa7d2a3a4145177de32546ca518a462a66/app/src/main/AndroidManifest.xml#L239C3-L249C15)
|
||||||
|
|
||||||
<pre><code class="javascript"> </service>
|
<pre><code class="javascript"> </service>
|
||||||
|
|
||||||
|
|||||||
@@ -2,25 +2,25 @@
|
|||||||
|
|
||||||
| c | |
|
| c | |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| [`functio ... ght);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/Expressions/examples/CompareIdenticalValues.js#L8-L13) | `6` |
|
| [`functio ... ght);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/Expressions/examples/CompareIdenticalValues.js#L8C32-L13C1) | `6` |
|
||||||
| [`functio ... i-1);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/LanguageFeatures/examples/ArgumentsCallerCallee.js#L1-L5) | `5` |
|
| [`functio ... i-1);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/LanguageFeatures/examples/ArgumentsCallerCallee.js#L1C2-L5C1) | `5` |
|
||||||
| [`functio ... i-1);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/LanguageFeatures/examples/ArgumentsCallerCalleeGood.js#L1-L5) | `5` |
|
| [`functio ... i-1);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/LanguageFeatures/examples/ArgumentsCallerCalleeGood.js#L1C2-L5C1) | `5` |
|
||||||
| [`functio ... n -1;\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/Statements/examples/UselessComparisonTest.js#L1-L12) | `12` |
|
| [`functio ... n -1;\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/src/Statements/examples/UselessComparisonTest.js#L1C1-L12C1) | `12` |
|
||||||
| [`functio ... false\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/constants.js#L1-L8) | `8` |
|
| [`functio ... false\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/constants.js#L1C1-L8C1) | `8` |
|
||||||
| [`functio ... \n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/loop.js#L1-L12) | `12` |
|
| [`functio ... \n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/loop.js#L1C1-L12C1) | `12` |
|
||||||
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/loop.js#L14-L22) | `9` |
|
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/loop.js#L14C1-L22C1) | `9` |
|
||||||
| [`functio ... K\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/loop.js#L24-L40) | `17` |
|
| [`functio ... K\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/loop.js#L24C1-L40C1) | `17` |
|
||||||
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/plus.js#L1-L17) | `17` |
|
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/plus.js#L1C1-L17C1) | `17` |
|
||||||
| [`functio ... alse \n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/plus.js#L19-L28) | `10` |
|
| [`functio ... alse \n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/plus.js#L19C1-L28C1) | `10` |
|
||||||
| [`functio ... true\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/plus.js#L30-L33) | `4` |
|
| [`functio ... true\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/plus.js#L30C1-L33C1) | `4` |
|
||||||
| [`functio ... K\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L1-L15) | `15` |
|
| [`functio ... K\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L1C1-L15C1) | `15` |
|
||||||
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L17-L31) | `15` |
|
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L17C1-L31C1) | `15` |
|
||||||
| [`functio ... false\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L33-L41) | `9` |
|
| [`functio ... false\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L33C1-L41C1) | `9` |
|
||||||
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L43-L52) | `10` |
|
| [`functio ... e\n }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/library-tests/RangeAnalysis/tst.js#L43C1-L52C1) | `10` |
|
||||||
| [`functio ... ght);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Expressions/CompareIdenticalValues/tst.js#L8-L13) | `6` |
|
| [`functio ... ght);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Expressions/CompareIdenticalValues/tst.js#L8C32-L13C1) | `6` |
|
||||||
| [`functio ... i-1);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/LanguageFeatures/ArgumentsCallerCallee/tst.js#L1-L5) | `5` |
|
| [`functio ... i-1);\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/LanguageFeatures/ArgumentsCallerCallee/tst.js#L1C2-L5C1) | `5` |
|
||||||
| [`functio ... }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Security/CWE-834/LoopBoundInjectionExitBad.js#L17-L29) | `13` |
|
| [`functio ... }\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Security/CWE-834/LoopBoundInjectionExitBad.js#L17C1-L29C1) | `13` |
|
||||||
| [`functio ... true\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/constant.js#L1-L4) | `4` |
|
| [`functio ... true\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/constant.js#L1C1-L4C1) | `4` |
|
||||||
| [`functio ... n -1;\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/example.js#L1-L12) | `12` |
|
| [`functio ... n -1;\n}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/example.js#L1C1-L12C1) | `12` |
|
||||||
| [`functio ... turn; }`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/tst.js#L8) | `1` |
|
| [`functio ... turn; }`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/tst.js#L8C3-L8C43) | `1` |
|
||||||
| [`\| functio ... i+1); \|}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/tst.js#L9) | `1` |
|
| [`\| functio ... i+1); \|}`](https://github.com/github/codeql/blob/cbdd4927cee593b715d8469240ce1d31edaaef9b/javascript/ql/test/query-tests/Statements/UselessComparisonTest/tst.js#L9C3-L9C52) | `1` |
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
|
|
||||||
| c | |
|
| c | |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| [`functio ... rn H\|0}`](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/logic-solver/minisat.js#L7) | `1` |
|
| [`functio ... rn H\|0}`](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/logic-solver/minisat.js#L7C91430-L7C105027) | `1` |
|
||||||
| [`functio ... ext;\n\t}`](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/sha/sha256.js#L94-L124) | `31` |
|
| [`functio ... ext;\n\t}`](https://github.com/meteor/meteor/blob/53f3c4442d3542d3d2a012a854472a0d1bef9d12/packages/sha/sha256.js#L94C2-L124C2) | `31` |
|
||||||
|
|||||||
Reference in New Issue
Block a user