Ruby: Add data-flow test for reverse array stores

This commit is contained in:
Tom Hvitved
2022-04-01 16:26:24 +02:00
parent de169277cb
commit a5040fd0ce
2 changed files with 41 additions and 1 deletions

View File

@@ -3401,6 +3401,22 @@ edges
| array_flow.rb:1604:10:1604:10 | c [array element] : | array_flow.rb:1604:10:1604:13 | ...[...] |
| array_flow.rb:1605:10:1605:10 | c [array element] : | array_flow.rb:1605:10:1605:13 | ...[...] |
| array_flow.rb:1605:10:1605:10 | c [array element] : | array_flow.rb:1605:10:1605:13 | ...[...] |
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : |
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : |
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : |
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : |
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : |
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : |
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : |
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : |
| array_flow.rb:1610:15:1610:27 | call to source : | array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : |
| array_flow.rb:1610:15:1610:27 | call to source : | array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | array_flow.rb:1611:10:1611:16 | ...[...] |
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | array_flow.rb:1611:10:1611:16 | ...[...] |
nodes
| array_flow.rb:2:9:2:20 | * ... : | semmle.label | * ... : |
| array_flow.rb:2:9:2:20 | * ... [array element 0] : | semmle.label | * ... [array element 0] : |
@@ -7049,6 +7065,22 @@ nodes
| array_flow.rb:1605:10:1605:10 | c [array element] : | semmle.label | c [array element] : |
| array_flow.rb:1605:10:1605:13 | ...[...] | semmle.label | ...[...] |
| array_flow.rb:1605:10:1605:13 | ...[...] | semmle.label | ...[...] |
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | semmle.label | [post] a [array element 0, array element 0] : |
| array_flow.rb:1610:5:1610:5 | [post] a [array element 0, array element 0] : | semmle.label | [post] a [array element 0, array element 0] : |
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | semmle.label | [post] a [array element, array element 0] : |
| array_flow.rb:1610:5:1610:5 | [post] a [array element, array element 0] : | semmle.label | [post] a [array element, array element 0] : |
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | semmle.label | [post] ...[...] [array element 0] : |
| array_flow.rb:1610:5:1610:8 | [post] ...[...] [array element 0] : | semmle.label | [post] ...[...] [array element 0] : |
| array_flow.rb:1610:15:1610:27 | call to source : | semmle.label | call to source : |
| array_flow.rb:1610:15:1610:27 | call to source : | semmle.label | call to source : |
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | semmle.label | a [array element 0, array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element 0, array element 0] : | semmle.label | a [array element 0, array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | semmle.label | a [array element, array element 0] : |
| array_flow.rb:1611:10:1611:10 | a [array element, array element 0] : | semmle.label | a [array element, array element 0] : |
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | semmle.label | ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:13 | ...[...] [array element 0] : | semmle.label | ...[...] [array element 0] : |
| array_flow.rb:1611:10:1611:16 | ...[...] | semmle.label | ...[...] |
| array_flow.rb:1611:10:1611:16 | ...[...] | semmle.label | ...[...] |
subpaths
#select
| array_flow.rb:3:10:3:13 | ...[...] | array_flow.rb:2:10:2:20 | call to source : | array_flow.rb:3:10:3:13 | ...[...] | $@ | array_flow.rb:2:10:2:20 | call to source : | call to source : |
@@ -7735,3 +7767,4 @@ subpaths
| array_flow.rb:1604:10:1604:13 | ...[...] | array_flow.rb:1601:13:1601:25 | call to source : | array_flow.rb:1604:10:1604:13 | ...[...] | $@ | array_flow.rb:1601:13:1601:25 | call to source : | call to source : |
| array_flow.rb:1605:10:1605:13 | ...[...] | array_flow.rb:1600:16:1600:28 | call to source : | array_flow.rb:1605:10:1605:13 | ...[...] | $@ | array_flow.rb:1600:16:1600:28 | call to source : | call to source : |
| array_flow.rb:1605:10:1605:13 | ...[...] | array_flow.rb:1601:13:1601:25 | call to source : | array_flow.rb:1605:10:1605:13 | ...[...] | $@ | array_flow.rb:1601:13:1601:25 | call to source : | call to source : |
| array_flow.rb:1611:10:1611:16 | ...[...] | array_flow.rb:1610:15:1610:27 | call to source : | array_flow.rb:1611:10:1611:16 | ...[...] | $@ | array_flow.rb:1610:15:1610:27 | call to source : | call to source : |

View File

@@ -1603,4 +1603,11 @@ def m135
sink c[0] # $ hasValueFlow=135.1 $ hasValueFlow=135.2
sink c[1] # $ hasValueFlow=135.1 $ hasValueFlow=135.2
sink c[2] # $ hasValueFlow=135.1 $ hasValueFlow=135.2
end
end
def m136(i)
a = [[0]]
a[i][0] = source(136.1)
sink(a[0][0]) # $ hasValueFlow=136.1
sink(a[0][1])
end