github / github/codeql

Get full string for exported JavaScript results

Open
#18,723 4 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
CodeQL
Stars
10.1k
Forks
2.1k
Avg merge
2d 15h
Merged PRs (30d)
141

Description

Consider the query below, which attempts to get the callee and the associated parameters. The returned string for the parameters is often truncated (sanitized) when the length is longer than 20 characters [as seen in the source code](https://github.com/github/codeql/blob/7361ad977a5dd5252d21f5fd23de47d75b763651/javascript/extractor/src/com/semmle/js/extractor/TextualExtractor.java#L121). For instance, if the expected full string is `bd0be325-86d9-4f16-95fa-b677f7455177`, it returns something like `bd0be ... 5177`, which is not helpful for my project.

While there's a good reason for this behavior, I would really like to be able to export the full string for a follow-up analysis.

```
import javascript

from CallExpr call, Expr parameters
where
parameters = call.getArgument(_)

select call.getCallee(), parameters.toString()
```

I have seen a similar issue ([results abbreviation #9890](https://github.com/github/codeql/issues/9890)), but the suggestions do not address my problem.

I would really appreciate any support I can get here. Thank you.

Contributor guide

Open the contributing guide

Research direction

Start with javascript/extractor/src/com/semmle/js/extractor/TextualExtractor.java at the linked line, then reproduce the query using parameters.toString() to observe the current truncation. Trace how exported result strings are sanitized and identify the relevant coverage for full-string output. Done means the query can export the complete parameter value without the current abbreviation, with behavior verified by an appropriate test or reproduction.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
devtools
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.