diff --git a/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java index 1eecc7d749fd..c1917492fb2a 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/YAMLExtractor.java @@ -166,8 +166,10 @@ private void extractNode(Label parent, int idx) { NodeId.scalar, scalar.getValue(), scalar.getImplicit().canOmitTagInPlainScalar()); + Character style = scalar.getStyle(); + int styleCode = style == null ? 0 : (int) style; trapWriter.addTuple( - YAMLTables.YAML_SCALARS, label, (int) scalar.getStyle(), scalar.getValue()); + YAMLTables.YAML_SCALARS, label, styleCode, scalar.getValue()); } else if (start.is(Event.ID.SequenceStart)) { kind = NodeKind.SEQUENCE; SequenceStartEvent sequenceStart = (SequenceStartEvent) start; @@ -226,16 +228,19 @@ private String getTag(String explicitTag, NodeId kind, String value, boolean imp * n characters, where n is the number of spaces preceding the caret character on * the second line. * - *

This is only an approximation, since the context never extends across newlines, but it - * suffices for the purposes of toString. + *

This is only an approximation, since the context is limited to relatively short strings that + * never extend across newlines, but it suffices for the purposes of toString. */ private String mkToString(Mark startMark, Mark endMark) { String snippet = startMark.get_snippet(0, Integer.MAX_VALUE); int nl = snippet.indexOf('\n'); String context = snippet.substring(0, nl); String src = context.substring(snippet.substring(nl + 1).indexOf('^')); - if (endMark.getLine() == startMark.getLine()) - src = src.substring(0, endMark.getColumn() - startMark.getColumn()); + int desiredStringLength = endMark.getColumn() - startMark.getColumn(); + boolean hasAccessToDesiredString = src.length() >= desiredStringLength; + boolean isSingleLine = endMark.getLine() == startMark.getLine(); + if (isSingleLine && hasAccessToDesiredString) + src = src.substring(0, desiredStringLength); return TextualExtractor.sanitiseToString(src); } diff --git a/javascript/extractor/tests/yaml/input/bad_1022_1_1.yml b/javascript/extractor/tests/yaml/input/bad_1022_1_1.yml new file mode 100644 index 000000000000..5f80777d2dd0 --- /dev/null +++ b/javascript/extractor/tests/yaml/input/bad_1022_1_1.yml @@ -0,0 +1 @@ +x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/javascript/extractor/tests/yaml/input/good_1021_1_1.yml b/javascript/extractor/tests/yaml/input/good_1021_1_1.yml new file mode 100644 index 000000000000..0f812e2cd793 --- /dev/null +++ b/javascript/extractor/tests/yaml/input/good_1021_1_1.yml @@ -0,0 +1 @@ +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:x \ No newline at end of file diff --git a/javascript/extractor/tests/yaml/input/good_1_1_1021.yml b/javascript/extractor/tests/yaml/input/good_1_1_1021.yml new file mode 100644 index 000000000000..5f80777d2dd0 --- /dev/null +++ b/javascript/extractor/tests/yaml/input/good_1_1_1021.yml @@ -0,0 +1 @@ +x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/javascript/extractor/tests/yaml/input/orig.yml b/javascript/extractor/tests/yaml/input/orig.yml new file mode 100644 index 000000000000..72254c84daea --- /dev/null +++ b/javascript/extractor/tests/yaml/input/orig.yml @@ -0,0 +1,26 @@ +xxxxxxxx: xxxx_xx + +xxxxxx_xxxxxx: + - xx [[ "$xxxxxx_xx_xxxx" == "xxxxx" ]]; xxxx xxxxxx xxxxxxx=:xx.x; xx -x /xxx/xxxx.x/xxxx xxxxx; xx + +xxxxxx: + xxxxxxx: + - xx: xxxxx + xxxx: xxxxxxxx + xxxx: xxxxxx +# - xx: xxx +# xxx_xxxxx: xxxxxx.x + +xxxxx: + xxxxxxxxxxx: + - xxxx_xxxxxxx + +xxxxxx: + xxxx_xxxxxxx: xxxx + xxxxxxxx: xxxxxx + xxxxxx: xxx xxx xxxx + +xxx: + xxxxxx: + # xx_xxxxx + xxxxxx: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxx/xxxxxx/xxxxxxxxxxxxxxxxxxx/xxxxxxxxxxx/xxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx/xxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxx= diff --git a/javascript/extractor/tests/yaml/input/x_bad_1_1_1022.yml b/javascript/extractor/tests/yaml/input/x_bad_1_1_1022.yml new file mode 100644 index 000000000000..baef1a4a12b6 --- /dev/null +++ b/javascript/extractor/tests/yaml/input/x_bad_1_1_1022.yml @@ -0,0 +1 @@ +x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ No newline at end of file diff --git a/javascript/extractor/tests/yaml/output/trap/bad_1022_1_1.yml.trap b/javascript/extractor/tests/yaml/output/trap/bad_1022_1_1.yml.trap new file mode 100644 index 000000000000..3a546565c909 --- /dev/null +++ b/javascript/extractor/tests/yaml/output/trap/bad_1022_1_1.yml.trap @@ -0,0 +1,16 @@ +#10000=@"/bad_1022_1_1.yml;sourcefile" +files(#10000,"/bad_1022_1_1.yml","bad_1022_1_1","yml",0) +#10001=@"/;folder" +folders(#10001,"/","") +containerparent(#10001,#10000) +#10002=@"loc,{#10000},0,0,0,0" +locations_default(#10002,#10000,0,0,0,0) +hasLocation(#10000,#10002) +#20000=* +yaml_scalars(#20000,0,"x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") +yaml(#20000,0,#10000,0,"tag:yaml.org,2002:str","x:xxxxx ... xxxxxxx") +#20001=@"loc,{#10000},1,1,1,1024" +locations_default(#20001,#10000,1,1,1,1024) +hasLocation(#20000,#20001) +numlines(#10000,1,0,0) +filetype(#10000,"yaml") diff --git a/javascript/extractor/tests/yaml/output/trap/good_1021_1_1.yml.trap b/javascript/extractor/tests/yaml/output/trap/good_1021_1_1.yml.trap new file mode 100644 index 000000000000..f97a4377541c --- /dev/null +++ b/javascript/extractor/tests/yaml/output/trap/good_1021_1_1.yml.trap @@ -0,0 +1,16 @@ +#10000=@"/good_1021_1_1.yml;sourcefile" +files(#10000,"/good_1021_1_1.yml","good_1021_1_1","yml",0) +#10001=@"/;folder" +folders(#10001,"/","") +containerparent(#10001,#10000) +#10002=@"loc,{#10000},0,0,0,0" +locations_default(#10002,#10000,0,0,0,0) +hasLocation(#10000,#10002) +#20000=* +yaml_scalars(#20000,0,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:x") +yaml(#20000,0,#10000,0,"tag:yaml.org,2002:str","xxxxxxx ... xxxxx:x") +#20001=@"loc,{#10000},1,1,1,1024" +locations_default(#20001,#10000,1,1,1,1024) +hasLocation(#20000,#20001) +numlines(#10000,1,0,0) +filetype(#10000,"yaml") diff --git a/javascript/extractor/tests/yaml/output/trap/good_1_1_1021.yml.trap b/javascript/extractor/tests/yaml/output/trap/good_1_1_1021.yml.trap new file mode 100644 index 000000000000..39575f9b6823 --- /dev/null +++ b/javascript/extractor/tests/yaml/output/trap/good_1_1_1021.yml.trap @@ -0,0 +1,16 @@ +#10000=@"/good_1_1_1021.yml;sourcefile" +files(#10000,"/good_1_1_1021.yml","good_1_1_1021","yml",0) +#10001=@"/;folder" +folders(#10001,"/","") +containerparent(#10001,#10000) +#10002=@"loc,{#10000},0,0,0,0" +locations_default(#10002,#10000,0,0,0,0) +hasLocation(#10000,#10002) +#20000=* +yaml_scalars(#20000,0,"x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") +yaml(#20000,0,#10000,0,"tag:yaml.org,2002:str","x:xxxxx ... xxxxxxx") +#20001=@"loc,{#10000},1,1,1,1024" +locations_default(#20001,#10000,1,1,1,1024) +hasLocation(#20000,#20001) +numlines(#10000,1,0,0) +filetype(#10000,"yaml") diff --git a/javascript/extractor/tests/yaml/output/trap/orig.yml.trap b/javascript/extractor/tests/yaml/output/trap/orig.yml.trap new file mode 100644 index 000000000000..c5b7b26d389e --- /dev/null +++ b/javascript/extractor/tests/yaml/output/trap/orig.yml.trap @@ -0,0 +1,216 @@ +#10000=@"/orig.yml;sourcefile" +files(#10000,"/orig.yml","orig","yml",0) +#10001=@"/;folder" +folders(#10001,"/","") +containerparent(#10001,#10000) +#10002=@"loc,{#10000},0,0,0,0" +locations_default(#10002,#10000,0,0,0,0) +hasLocation(#10000,#10002) +#20000=* +#20001=* +yaml_scalars(#20001,0,"xxxxxxxx") +yaml(#20001,0,#20000,1,"tag:yaml.org,2002:str","xxxxxxxx") +#20002=@"loc,{#10000},1,1,1,8" +locations_default(#20002,#10000,1,1,1,8) +hasLocation(#20001,#20002) +#20003=* +yaml_scalars(#20003,0,"xxxx_xx") +yaml(#20003,0,#20000,-1,"tag:yaml.org,2002:str","xxxx_xx") +#20004=@"loc,{#10000},1,11,1,17" +locations_default(#20004,#10000,1,11,1,17) +hasLocation(#20003,#20004) +#20005=* +yaml_scalars(#20005,0,"xxxxxx_xxxxxx") +yaml(#20005,0,#20000,2,"tag:yaml.org,2002:str","xxxxxx_xxxxxx") +#20006=@"loc,{#10000},3,1,3,13" +locations_default(#20006,#10000,3,1,3,13) +hasLocation(#20005,#20006) +#20007=* +#20008=* +yaml_scalars(#20008,0,"xx [[ ""$xxxxxx_xx_xxxx"" == ""xxxxx"" ]]; xxxx xxxxxx xxxxxxx=:xx.x; xx -x /xxx/xxxx.x/xxxx xxxxx; xx") +yaml(#20008,0,#20007,0,"tag:yaml.org,2002:str","xx [[ "" ... xxx; xx") +#20009=@"loc,{#10000},4,5,4,102" +locations_default(#20009,#10000,4,5,4,102) +hasLocation(#20008,#20009) +yaml(#20007,2,#20000,-2,"tag:yaml.org,2002:seq","- xx [[ ... xxx; xx") +#20010=@"loc,{#10000},4,3,6,0" +locations_default(#20010,#10000,4,3,6,0) +hasLocation(#20007,#20010) +#20011=* +yaml_scalars(#20011,0,"xxxxxx") +yaml(#20011,0,#20000,3,"tag:yaml.org,2002:str","xxxxxx") +#20012=@"loc,{#10000},6,1,6,6" +locations_default(#20012,#10000,6,1,6,6) +hasLocation(#20011,#20012) +#20013=* +#20014=* +yaml_scalars(#20014,0,"xxxxxxx") +yaml(#20014,0,#20013,1,"tag:yaml.org,2002:str","xxxxxxx") +#20015=@"loc,{#10000},7,3,7,9" +locations_default(#20015,#10000,7,3,7,9) +hasLocation(#20014,#20015) +#20016=* +#20017=* +#20018=* +yaml_scalars(#20018,0,"xx") +yaml(#20018,0,#20017,1,"tag:yaml.org,2002:str","xx") +#20019=@"loc,{#10000},8,7,8,8" +locations_default(#20019,#10000,8,7,8,8) +hasLocation(#20018,#20019) +#20020=* +yaml_scalars(#20020,0,"xxxxx") +yaml(#20020,0,#20017,-1,"tag:yaml.org,2002:str","xxxxx") +#20021=@"loc,{#10000},8,11,8,15" +locations_default(#20021,#10000,8,11,8,15) +hasLocation(#20020,#20021) +#20022=* +yaml_scalars(#20022,0,"xxxx") +yaml(#20022,0,#20017,2,"tag:yaml.org,2002:str","xxxx") +#20023=@"loc,{#10000},9,7,9,10" +locations_default(#20023,#10000,9,7,9,10) +hasLocation(#20022,#20023) +#20024=* +yaml_scalars(#20024,0,"xxxxxxxx") +yaml(#20024,0,#20017,-2,"tag:yaml.org,2002:str","xxxxxxxx") +#20025=@"loc,{#10000},9,13,9,20" +locations_default(#20025,#10000,9,13,9,20) +hasLocation(#20024,#20025) +#20026=* +yaml_scalars(#20026,0,"xxxx") +yaml(#20026,0,#20017,3,"tag:yaml.org,2002:str","xxxx") +#20027=@"loc,{#10000},10,7,10,10" +locations_default(#20027,#10000,10,7,10,10) +hasLocation(#20026,#20027) +#20028=* +yaml_scalars(#20028,0,"xxxxxx") +yaml(#20028,0,#20017,-3,"tag:yaml.org,2002:str","xxxxxx") +#20029=@"loc,{#10000},10,13,10,18" +locations_default(#20029,#10000,10,13,10,18) +hasLocation(#20028,#20029) +yaml(#20017,1,#20016,0,"tag:yaml.org,2002:map","xx: xxxxx") +#20030=@"loc,{#10000},8,7,14,0" +locations_default(#20030,#10000,8,7,14,0) +hasLocation(#20017,#20030) +yaml(#20016,2,#20013,-1,"tag:yaml.org,2002:seq","- xx: xxxxx") +#20031=@"loc,{#10000},8,5,14,0" +locations_default(#20031,#10000,8,5,14,0) +hasLocation(#20016,#20031) +yaml(#20013,1,#20000,-3,"tag:yaml.org,2002:map","xxxxxxx:") +#20032=@"loc,{#10000},7,3,14,0" +locations_default(#20032,#10000,7,3,14,0) +hasLocation(#20013,#20032) +#20033=* +yaml_scalars(#20033,0,"xxxxx") +yaml(#20033,0,#20000,4,"tag:yaml.org,2002:str","xxxxx") +#20034=@"loc,{#10000},14,1,14,5" +locations_default(#20034,#10000,14,1,14,5) +hasLocation(#20033,#20034) +#20035=* +#20036=* +yaml_scalars(#20036,0,"xxxxxxxxxxx") +yaml(#20036,0,#20035,1,"tag:yaml.org,2002:str","xxxxxxxxxxx") +#20037=@"loc,{#10000},15,3,15,13" +locations_default(#20037,#10000,15,3,15,13) +hasLocation(#20036,#20037) +#20038=* +#20039=* +yaml_scalars(#20039,0,"xxxx_xxxxxxx") +yaml(#20039,0,#20038,0,"tag:yaml.org,2002:str","xxxx_xxxxxxx") +#20040=@"loc,{#10000},16,7,16,18" +locations_default(#20040,#10000,16,7,16,18) +hasLocation(#20039,#20040) +yaml(#20038,2,#20035,-1,"tag:yaml.org,2002:seq","- xxxx_xxxxxxx") +#20041=@"loc,{#10000},16,5,18,0" +locations_default(#20041,#10000,16,5,18,0) +hasLocation(#20038,#20041) +yaml(#20035,1,#20000,-4,"tag:yaml.org,2002:map","xxxxxxxxxxx:") +#20042=@"loc,{#10000},15,3,18,0" +locations_default(#20042,#10000,15,3,18,0) +hasLocation(#20035,#20042) +#20043=* +yaml_scalars(#20043,0,"xxxxxx") +yaml(#20043,0,#20000,5,"tag:yaml.org,2002:str","xxxxxx") +#20044=@"loc,{#10000},18,1,18,6" +locations_default(#20044,#10000,18,1,18,6) +hasLocation(#20043,#20044) +#20045=* +#20046=* +yaml_scalars(#20046,0,"xxxx_xxxxxxx") +yaml(#20046,0,#20045,1,"tag:yaml.org,2002:str","xxxx_xxxxxxx") +#20047=@"loc,{#10000},19,3,19,14" +locations_default(#20047,#10000,19,3,19,14) +hasLocation(#20046,#20047) +#20048=* +yaml_scalars(#20048,0,"xxxx") +yaml(#20048,0,#20045,-1,"tag:yaml.org,2002:str","xxxx") +#20049=@"loc,{#10000},19,17,19,20" +locations_default(#20049,#10000,19,17,19,20) +hasLocation(#20048,#20049) +#20050=* +yaml_scalars(#20050,0,"xxxxxxxx") +yaml(#20050,0,#20045,2,"tag:yaml.org,2002:str","xxxxxxxx") +#20051=@"loc,{#10000},20,3,20,10" +locations_default(#20051,#10000,20,3,20,10) +hasLocation(#20050,#20051) +#20052=* +yaml_scalars(#20052,0,"xxxxxx") +yaml(#20052,0,#20045,-2,"tag:yaml.org,2002:str","xxxxxx") +#20053=@"loc,{#10000},20,13,20,18" +locations_default(#20053,#10000,20,13,20,18) +hasLocation(#20052,#20053) +#20054=* +yaml_scalars(#20054,0,"xxxxxx") +yaml(#20054,0,#20045,3,"tag:yaml.org,2002:str","xxxxxx") +#20055=@"loc,{#10000},21,3,21,8" +locations_default(#20055,#10000,21,3,21,8) +hasLocation(#20054,#20055) +#20056=* +yaml_scalars(#20056,0,"xxx xxx xxxx") +yaml(#20056,0,#20045,-3,"tag:yaml.org,2002:str","xxx xxx xxxx") +#20057=@"loc,{#10000},21,11,21,22" +locations_default(#20057,#10000,21,11,21,22) +hasLocation(#20056,#20057) +yaml(#20045,1,#20000,-5,"tag:yaml.org,2002:map","xxxx_xxxxxxx: xxxx") +#20058=@"loc,{#10000},19,3,23,0" +locations_default(#20058,#10000,19,3,23,0) +hasLocation(#20045,#20058) +#20059=* +yaml_scalars(#20059,0,"xxx") +yaml(#20059,0,#20000,6,"tag:yaml.org,2002:str","xxx") +#20060=@"loc,{#10000},23,1,23,3" +locations_default(#20060,#10000,23,1,23,3) +hasLocation(#20059,#20060) +#20061=* +#20062=* +yaml_scalars(#20062,0,"xxxxxx") +yaml(#20062,0,#20061,1,"tag:yaml.org,2002:str","xxxxxx") +#20063=@"loc,{#10000},24,3,24,8" +locations_default(#20063,#10000,24,3,24,8) +hasLocation(#20062,#20063) +#20064=* +#20065=* +yaml_scalars(#20065,0,"xxxxxx") +yaml(#20065,0,#20064,1,"tag:yaml.org,2002:str","xxxxxx") +#20066=@"loc,{#10000},26,5,26,10" +locations_default(#20066,#10000,26,5,26,10) +hasLocation(#20065,#20066) +#20067=* +yaml_scalars(#20067,0,"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxx/xxxxxx/xxxxxxxxxxxxxxxxxxx/xxxxxxxxxxx/xxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx/xxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxx=") +yaml(#20067,0,#20064,-1,"tag:yaml.org,2002:str","xxxxxxx ... xxxxxx=") +#20068=@"loc,{#10000},26,13,26,696" +locations_default(#20068,#10000,26,13,26,696) +hasLocation(#20067,#20068) +yaml(#20064,1,#20061,-1,"tag:yaml.org,2002:map","xxxxxx: ... xxxxxx=") +#20069=@"loc,{#10000},26,5,27,0" +locations_default(#20069,#10000,26,5,27,0) +hasLocation(#20064,#20069) +yaml(#20061,1,#20000,-6,"tag:yaml.org,2002:map","xxxxxx:") +#20070=@"loc,{#10000},24,3,27,0" +locations_default(#20070,#10000,24,3,27,0) +hasLocation(#20061,#20070) +yaml(#20000,1,#10000,0,"tag:yaml.org,2002:map","xxxxxxxx: xxxx_xx") +#20071=@"loc,{#10000},1,1,27,0" +locations_default(#20071,#10000,1,1,27,0) +hasLocation(#20000,#20071) +numlines(#10000,26,0,0) +filetype(#10000,"yaml") diff --git a/javascript/extractor/tests/yaml/output/trap/x_bad_1_1_1022.yml.trap b/javascript/extractor/tests/yaml/output/trap/x_bad_1_1_1022.yml.trap new file mode 100644 index 000000000000..6cf53b809bd4 --- /dev/null +++ b/javascript/extractor/tests/yaml/output/trap/x_bad_1_1_1022.yml.trap @@ -0,0 +1,16 @@ +#10000=@"/x_bad_1_1_1022.yml;sourcefile" +files(#10000,"/x_bad_1_1_1022.yml","x_bad_1_1_1022","yml",0) +#10001=@"/;folder" +folders(#10001,"/","") +containerparent(#10001,#10000) +#10002=@"loc,{#10000},0,0,0,0" +locations_default(#10002,#10000,0,0,0,0) +hasLocation(#10000,#10002) +#20000=* +yaml_scalars(#20000,0,"x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") +yaml(#20000,0,#10000,0,"tag:yaml.org,2002:str","x:xxxxx ... xxxxxxx") +#20001=@"loc,{#10000},1,1,1,1025" +locations_default(#20001,#10000,1,1,1,1025) +hasLocation(#20000,#20001) +numlines(#10000,1,0,0) +filetype(#10000,"yaml")