Commit 72356d1
committed
Ruby: track flow from *args to positional params
This models flow in the following case:
def foo(x, y)
sink x # 1
sink y # 2
end
args = [source 1, source 2]
foo(*args)
We do this by introducing a SynthSplatParameterNode which accepts
content from the splat argument, if one is given at the callsite.
From this node we add read steps to each positional parameter.1 parent 01ff690 commit 72356d1
File tree
6 files changed
+270
-25
lines changed- ruby/ql
- lib/codeql/ruby/dataflow/internal
- test/library-tests/dataflow
- local
- params
- type-tracker
6 files changed
+270
-25
lines changedLines changed: 22 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
439 | 439 | | |
440 | 440 | | |
441 | 441 | | |
| 442 | + | |
442 | 443 | | |
443 | 444 | | |
444 | 445 | | |
| |||
468 | 469 | | |
469 | 470 | | |
470 | 471 | | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
471 | 476 | | |
472 | 477 | | |
473 | 478 | | |
| |||
1288 | 1293 | | |
1289 | 1294 | | |
1290 | 1295 | | |
| 1296 | + | |
| 1297 | + | |
1291 | 1298 | | |
1292 | 1299 | | |
| 1300 | + | |
| 1301 | + | |
1293 | 1302 | | |
1294 | 1303 | | |
1295 | 1304 | | |
| |||
1320 | 1329 | | |
1321 | 1330 | | |
1322 | 1331 | | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
1323 | 1336 | | |
1324 | 1337 | | |
1325 | 1338 | | |
| |||
1354 | 1367 | | |
1355 | 1368 | | |
1356 | 1369 | | |
| 1370 | + | |
| 1371 | + | |
1357 | 1372 | | |
1358 | 1373 | | |
1359 | 1374 | | |
| |||
1371 | 1386 | | |
1372 | 1387 | | |
1373 | 1388 | | |
| 1389 | + | |
| 1390 | + | |
1374 | 1391 | | |
1375 | 1392 | | |
1376 | 1393 | | |
| |||
1408 | 1425 | | |
1409 | 1426 | | |
1410 | 1427 | | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
1411 | 1433 | | |
1412 | 1434 | | |
1413 | 1435 | | |
| |||
Lines changed: 90 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
245 | 245 | | |
246 | 246 | | |
247 | 247 | | |
| 248 | + | |
248 | 249 | | |
249 | 250 | | |
250 | 251 | | |
| |||
261 | 262 | | |
262 | 263 | | |
263 | 264 | | |
| 265 | + | |
264 | 266 | | |
265 | 267 | | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
266 | 274 | | |
267 | 275 | | |
268 | 276 | | |
| |||
300 | 308 | | |
301 | 309 | | |
302 | 310 | | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
303 | 315 | | |
304 | 316 | | |
305 | 317 | | |
| |||
318 | 330 | | |
319 | 331 | | |
320 | 332 | | |
321 | | - | |
| 333 | + | |
322 | 334 | | |
323 | 335 | | |
324 | 336 | | |
| |||
514 | 526 | | |
515 | 527 | | |
516 | 528 | | |
| 529 | + | |
| 530 | + | |
517 | 531 | | |
518 | 532 | | |
519 | 533 | | |
| |||
610 | 624 | | |
611 | 625 | | |
612 | 626 | | |
| 627 | + | |
613 | 628 | | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
614 | 634 | | |
615 | 635 | | |
616 | 636 | | |
| |||
749 | 769 | | |
750 | 770 | | |
751 | 771 | | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
752 | 832 | | |
753 | 833 | | |
754 | 834 | | |
| |||
1099 | 1179 | | |
1100 | 1180 | | |
1101 | 1181 | | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
1102 | 1189 | | |
1103 | 1190 | | |
1104 | 1191 | | |
| |||
1187 | 1274 | | |
1188 | 1275 | | |
1189 | 1276 | | |
| 1277 | + | |
| 1278 | + | |
1190 | 1279 | | |
1191 | 1280 | | |
1192 | 1281 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2796 | 2796 | | |
2797 | 2797 | | |
2798 | 2798 | | |
| 2799 | + | |
2799 | 2800 | | |
2800 | 2801 | | |
2801 | 2802 | | |
| |||
2840 | 2841 | | |
2841 | 2842 | | |
2842 | 2843 | | |
| 2844 | + | |
2843 | 2845 | | |
2844 | 2846 | | |
2845 | 2847 | | |
| |||
2874 | 2876 | | |
2875 | 2877 | | |
2876 | 2878 | | |
| 2879 | + | |
2877 | 2880 | | |
2878 | 2881 | | |
2879 | 2882 | | |
| |||
2883 | 2886 | | |
2884 | 2887 | | |
2885 | 2888 | | |
| 2889 | + | |
2886 | 2890 | | |
2887 | 2891 | | |
2888 | 2892 | | |
2889 | 2893 | | |
2890 | 2894 | | |
2891 | 2895 | | |
2892 | 2896 | | |
| 2897 | + | |
2893 | 2898 | | |
2894 | 2899 | | |
2895 | 2900 | | |
| |||
2901 | 2906 | | |
2902 | 2907 | | |
2903 | 2908 | | |
| 2909 | + | |
2904 | 2910 | | |
2905 | 2911 | | |
2906 | 2912 | | |
2907 | 2913 | | |
2908 | 2914 | | |
| 2915 | + | |
2909 | 2916 | | |
2910 | 2917 | | |
2911 | 2918 | | |
| |||
2924 | 2931 | | |
2925 | 2932 | | |
2926 | 2933 | | |
| 2934 | + | |
2927 | 2935 | | |
2928 | 2936 | | |
| 2937 | + | |
2929 | 2938 | | |
2930 | 2939 | | |
2931 | 2940 | | |
| |||
3098 | 3107 | | |
3099 | 3108 | | |
3100 | 3109 | | |
| 3110 | + | |
3101 | 3111 | | |
3102 | 3112 | | |
3103 | 3113 | | |
| |||
3112 | 3122 | | |
3113 | 3123 | | |
3114 | 3124 | | |
| 3125 | + | |
3115 | 3126 | | |
3116 | 3127 | | |
| 3128 | + | |
3117 | 3129 | | |
3118 | 3130 | | |
3119 | 3131 | | |
| |||
0 commit comments