rcjsuen / dockerfile-language-service

Dockerfile language service for providing an API to create feature-rich Dockerfile editors in JavaScript.
MIT License
16 stars 2 forks source link

Malformed instruction with an escape character causes infinite loop when computing semantic tokens #91

Closed rcjsuen closed 2 years ago

rcjsuen commented 2 years ago
RU\N
RUN
const lib = require("dockerfile-language-service");
const service = lib.DockerfileLanguageServiceFactory.createLanguageService();
service.computeSemanticTokens("RU\\N\nRUN");
node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:510
                var intermediateRange = {
                                        ^

RangeError: Maximum call stack size exceeded
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:510:41)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)
    at DockerSemanticTokens.createToken (node_modules/dockerfile-language-service/lib/dockerSemanticTokens.js:514:22)