mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-11-15 09:02:15 +03:00
Commit Graph
Select branches
Hide Pull Requests
gh-pages
nginx_refactoring
nginx_refactoring_def
v2/dev/fix-pcre-study-leak-610
v2/dev/itk-ruid-test
v2/dev/memcache_collections
v2/dev/sechash_test_case
v2/dev/v2.9.4
v2/exp/ModSecurity_for_Java
v2/exp/collection_garbage_freq
v2/exp/json_sanitizer
v2/exp/python_support
v2/master
v2/per/without_libxml_dependency
v3/dev/3.1
v3/dev/3.1-experimental
v3/dev/3.1-experimental-2374
v3/dev/3.1-experimental-II
v3/dev/3.1-experimental-III
v3/dev/3.1-experimental-test
v3/dev/experimental_yara
v3/dev/fix_using
v3/dev/github-actions-test
v3/dev/hyperscan
v3/dev/issue_215
v3/dev/issue_340
v3/dev/master
v3/dev/master-fix
v3/dev/master-no-warnings
v3/dev/master-on-workflow
v3/dev/master-on-workflow-n-travis
v3/dev/parser_trail
v3/dev/phases
v3/dev/pkg-config
v3/dev/pull_2387
v3/dev/pull_2427
v3/dev/pull_2430
v3/dev/pull_2520
v3/dev/re2
v3/dev/reload
v3/dev/reload2
v3/dev/sec_binary_rules
v3/dev/setenv
v3/dev/testing
v3/dev/wasm-experimental
v3/master
v3/twaf/3.0.2+315f98b
v3/twaf/v3.0.2
v3/twaf8.5
v3/twaf8.5-3.0.0-rc1
v3/twaf8.5-almost-gold
v3/twaf8.5-v3.0.0
v3/twaf8.5-v3.0.0-no-dynamic-rx
v3/twaf8.5-v3.0.0-perf
v3/twaf8.5-v3.0.0-perf-test
#1
#1
#10
#10
#100
#100
#101
#101
#102
#102
#103
#103
#1031
#1031
#1038
#104
#104
#1040
#1040
#1041
#1041
#1051
#1051
#1052
#1052
#106
#106
#1060
#1060
#107
#107
#1071
#1071
#108
#108
#1087
#1087
#109
#109
#1098
#1098
#11
#11
#110
#110
#1108
#1108
#111
#111
#1110
#1110
#1115
#1115
#112
#112
#1123
#1123
#113
#113
#1143
#1143
#1150
#1150
#1151
#1151
#1158
#1158
#116
#116
#1163
#1163
#1164
#1164
#1171
#1171
#1175
#1175
#1178
#1178
#1179
#1179
#118
#118
#1180
#1180
#1181
#1181
#1186
#1186
#1187
#1187
#119
#1190
#1190
#12
#12
#1200
#1200
#1204
#1204
#121
#121
#1213
#1213
#1216
#1216
#122
#122
#1220
#1220
#1223
#1223
#1224
#1224
#1225
#1225
#1231
#1233
#1233
#124
#124
#1249
#1249
#125
#125
#1256
#1256
#1257
#1257
#1258
#1258
#1259
#126
#126
#1261
#1261
#1263
#1263
#1266
#1266
#127
#127
#1270
#1270
#1271
#1271
#1274
#1274
#1279
#1279
#128
#128
#1281
#1281
#1282
#1282
#1283
#1283
#1289
#1289
#1298
#1298
#13
#13
#130
#130
#1301
#1301
#1306
#1306
#1308
#1308
#131
#131
#1324
#133
#133
#1332
#1332
#1339
#1339
#1340
#1340
#1343
#1343
#135
#135
#136
#136
#1371
#1371
#1373
#1373
#1374
#1374
#1379
#1379
#138
#138
#1380
#1380
#1381
#1381
#1382
#1382
#1383
#1383
#1384
#1384
#1385
#1385
#139
#139
#1393
#1393
#1400
#1400
#1401
#1401
#1402
#1402
#1403
#1403
#1404
#1404
#141
#141
#1410
#1410
#1413
#1413
#1414
#1414
#1415
#1415
#1429
#1429
#1433
#1433
#1436
#1436
#1439
#1439
#144
#144
#1446
#1446
#1454
#1454
#146
#146
#1467
#1467
#147
#147
#1473
#1473
#1479
#1479
#148
#148
#1485
#1485
#1486
#1486
#1487
#1487
#1488
#1488
#149
#149
#15
#15
#150
#150
#1500
#1500
#1501
#1501
#1502
#1502
#1510
#1510
#1511
#1511
#1513
#1513
#1514
#1514
#1515
#1515
#152
#152
#1523
#1523
#1524
#1524
#1525
#1525
#1526
#1527
#1527
#1530
#1530
#1536
#1536
#1538
#1538
#1539
#1540
#1540
#1541
#1541
#1543
#1545
#1545
#1571
#1571
#1572
#1572
#1577
#1583
#1598
#1598
#16
#16
#1609
#1611
#1612
#1613
#1613
#1614
#1614
#1615
#1615
#1619
#1619
#1621
#1621
#1623
#1623
#1624
#1624
#1636
#1636
#1639
#1640
#1640
#1651
#1651
#1652
#1652
#1667
#1667
#1675
#1675
#1677
#1677
#1678
#1678
#1683
#1690
#1690
#1691
#1691
#1694
#1694
#1696
#1696
#17
#17
#1701
#1701
#1702
#1702
#1713
#1713
#1714
#1715
#1715
#1716
#1716
#1721
#1721
#1730
#1730
#1735
#1735
#1737
#1737
#1738
#1738
#1739
#1739
#1740
#1740
#1744
#1744
#1747
#1747
#1748
#1748
#1749
#1749
#1750
#1750
#1751
#1751
#1752
#1752
#1755
#1755
#1756
#1756
#1757
#1757
#1758
#1758
#1759
#1759
#1760
#1760
#1761
#1761
#1765
#1765
#1769
#1769
#1771
#1771
#1775
#1775
#1781
#1781
#1783
#1783
#1786
#1786
#1787
#1787
#1788
#1788
#1790
#1790
#1792
#1792
#18
#18
#1801
#1801
#1806
#1806
#1807
#1807
#1810
#1810
#1814
#1814
#1820
#1820
#1821
#1822
#1823
#1823
#1826
#1826
#1847
#1847
#1852
#1852
#1854
#1854
#1855
#1855
#1856
#1856
#1859
#1859
#1861
#1861
#1881
#1881
#1886
#1886
#1890
#1891
#1895
#1895
#1897
#1897
#1901
#1901
#1910
#1910
#1912
#1917
#1919
#1920
#1922
#1922
#1924
#1943
#1949
#1955
#1957
#1959
#1966
#1973
#1978
#1984
#1990
#1992
#1997
#2
#2
#2002
#2003
#2007
#2011
#2012
#2012
#2014
#2015
#2016
#2017
#2018
#2023
#2024
#2031
#2032
#2045
#2045
#2046
#2048
#2049
#2057
#2058
#2059
#2060
#2063
#2068
#2071
#2073
#2092
#2094
#2094
#2095
#2097
#21
#21
#2102
#2103
#2107
#2113
#2114
#2119
#2119
#2123
#2130
#2134
#2134
#2155
#2171
#2177
#2177
#2179
#2189
#2190
#2191
#2193
#2197
#2199
#22
#22
#2201
#2202
#2203
#2205
#2214
#2219
#2225
#2229
#2234
#2235
#2236
#2239
#2253
#2261
#2263
#2265
#2295
#2297
#2304
#2304
#2315
#2316
#2317
#2321
#2322
#2342
#2348
#2353
#2353
#2363
#2368
#2369
#2370
#2374
#2375
#2378
#2379
#2387
#2393
#2394
#2396
#2399
#24
#24
#2412
#2417
#2417
#2424
#2430
#2433
#2435
#2436
#2440
#2441
#2443
#2444
#2445
#2446
#2449
#2451
#2453
#2455
#2461
#2467
#2471
#2473
#2474
#2478
#2479
#2485
#2492
#2497
#2499
#2505
#2518
#2518
#2520
#2520
#2522
#2535
#2542
#2551
#2551
#2562
#2570
#2574
#2578
#2580
#2586
#2588
#2591
#2592
#2593
#2596
#26
#26
#2600
#2602
#2604
#2607
#2612
#2616
#2619
#2620
#2620
#2621
#2622
#2633
#2634
#2635
#2638
#2642
#2643
#2644
#2656
#2657
#2660
#2661
#2663
#2667
#2673
#2677
#2680
#2681
#2681
#2685
#2686
#2688
#27
#27
#2707
#2708
#2708
#2714
#2715
#2718
#2718
#2719
#2721
#2721
#2723
#2725
#2727
#2728
#2731
#2732
#2735
#2736
#2738
#2748
#2748
#2749
#2751
#2753
#2757
#2758
#2760
#2761
#2762
#2763
#2770
#2775
#2776
#2780
#2781
#2783
#2783
#2785
#2786
#2786
#2788
#2789
#2791
#2792
#2794
#2795
#2796
#2797
#2799
#2800
#2801
#2806
#2812
#2813
#2818
#2823
#2823
#2827
#2828
#2831
#2832
#2833
#2834
#2839
#2840
#2844
#2846
#2850
#2850
#2854
#2857
#2862
#2864
#2866
#2868
#2870
#2876
#2883
#2886
#2890
#2891
#2892
#2894
#2898
#29
#2901
#2906
#2909
#2912
#2915
#2916
#2924
#2930
#2930
#2931
#2934
#2935
#2939
#2940
#2941
#2944
#2945
#2946
#2947
#2948
#2949
#2950
#2951
#2952
#2953
#2954
#2955
#2956
#2957
#2958
#2959
#2960
#2961
#2962
#2963
#2964
#2965
#2967
#2968
#2969
#2971
#2971
#2975
#2977
#2980
#2983
#2985
#2987
#2992
#2993
#2994
#2996
#2997
#2999
#3
#3
#30
#30
#3001
#3003
#3004
#3005
#3008
#3009
#3011
#3012
#3014
#3016
#3019
#3020
#3024
#3025
#3027
#3032
#3040
#3041
#3042
#3043
#3048
#3050
#3051
#3052
#3055
#3056
#3057
#3058
#3059
#3060
#3061
#3062
#3063
#3064
#3065
#3066
#3067
#3068
#3069
#3070
#3071
#3072
#3073
#3074
#3075
#3076
#3078
#3079
#3080
#3086
#3087
#3090
#3092
#3093
#3093
#3094
#3095
#3096
#3097
#3098
#3099
#31
#31
#3101
#3104
#3114
#3116
#3117
#3120
#3121
#3121
#3127
#3128
#3132
#3134
#3139
#3141
#3144
#3145
#3146
#3148
#3149
#3150
#3150
#3151
#3152
#3152
#3153
#3154
#3155
#3156
#3156
#3157
#3157
#3158
#3159
#3160
#3161
#3164
#3166
#3166
#3171
#3172
#3172
#3176
#3176
#3181
#3181
#3182
#3185
#3187
#3188
#3189
#3190
#3191
#3192
#3193
#3194
#3198
#3199
#3202
#3203
#3205
#3206
#3207
#3208
#3209
#3210
#3211
#3212
#3213
#3214
#3216
#3217
#3218
#3219
#3220
#3221
#3222
#3223
#3223
#3224
#3225
#3226
#3227
#3228
#3229
#3231
#3232
#3233
#3236
#3236
#3239
#3239
#3240
#3241
#3243
#3245
#3247
#3248
#3250
#3253
#3254
#3257
#3262
#3264
#3265
#3266
#3267
#3268
#3269
#3270
#3279
#3280
#3283
#3284
#3285
#3287
#3291
#3298
#33
#33
#3306
#3307
#3314
#3319
#3321
#3322
#3335
#3339
#3342
#3345
#3350
#3354
#3358
#3359
#3359
#3361
#3363
#3364
#3365
#3371
#3372
#3374
#3375
#3376
#3377
#3378
#3379
#3383
#3385
#3386
#3387
#3388
#3389
#3390
#3391
#3392
#3393
#3398
#34
#34
#3400
#3401
#3405
#3406
#3406
#3411
#3412
#3418
#3419
#3420
#3421
#3422
#3424
#3425
#3426
#3427
#3428
#3430
#3432
#3434
#3437
#3438
#3442
#3443
#3447
#3452
#3454
#3455
#3456
#3456
#3458
#3464
#35
#35
#36
#36
#37
#37
#38
#38
#39
#39
#4
#42
#43
#43
#44
#44
#45
#45
#46
#48
#48
#49
#49
#5
#5
#50
#50
#51
#51
#52
#52
#53
#53
#54
#54
#55
#55
#57
#57
#578
#579
#58
#58
#583
#583
#59
#59
#591
#591
#592
#592
#594
#594
#595
#595
#596
#596
#597
#597
#6
#6
#604
#604
#606
#606
#607
#607
#608
#608
#609
#609
#61
#61
#612
#612
#614
#614
#617
#617
#618
#618
#619
#619
#62
#62
#620
#620
#622
#622
#64
#64
#65
#65
#659
#66
#66
#666
#668
#668
#669
#67
#67
#672
#672
#68
#68
#692
#697
#697
#698
#698
#7
#7
#70
#70
#700
#700
#701
#701
#709
#709
#71
#71
#718
#718
#72
#72
#720
#720
#721
#721
#722
#722
#723
#723
#73
#73
#74
#74
#740
#740
#745
#745
#749
#749
#75
#757
#76
#76
#767
#767
#77
#77
#775
#775
#776
#78
#78
#782
#782
#79
#79
#794
#796
#796
#8
#8
#80
#80
#81
#81
#810
#810
#815
#815
#817
#817
#82
#82
#824
#824
#826
#826
#83
#83
#836
#836
#837
#837
#84
#84
#840
#840
#842
#842
#844
#844
#85
#85
#852
#852
#86
#86
#87
#87
#872
#872
#879
#879
#88
#88
#881
#881
#883
#883
#9
#9
#904
#904
#906
#906
#91
#91
#914
#914
#92
#92
#927
#927
#93
#93
#933
#933
#94
#94
#95
#95
#950
#950
#96
#96
#961
#97
#97
#978
#978
#98
#98
#980
#980
#982
#982
#99
#99
#996
#996
v2.1.0
v2.1.0-rc7
v2.1.1
v2.1.1-dev2
v2.1.1-dev3
v2.1.1-dev4
v2.1.1-rc1
v2.1.1-rc2
v2.1.2
v2.1.2-rc1
v2.1.2-rc2
v2.1.2-rc3
v2.1.3
v2.1.3-rc1
v2.1.3-rc2
v2.1.4
v2.1.4-rc1
v2.1.4-rc2
v2.1.4-rc3
v2.1.4-rc4
v2.1.5
v2.1.5-rc1
v2.1.6
v2.1.6-rc1
v2.1.7
v2.2.0-dev1
v2.5.0
v2.5.0-dev2
v2.5.0-rc1
v2.5.0-rc2
v2.5.0-rc3
v2.5.0-rc3-pre2
v2.5.0-rc4
v2.5.1
v2.5.1-rc1
v2.5.10
v2.5.10-dev1
v2.5.10-dev2
v2.5.10-dev3
v2.5.11
v2.5.12
v2.5.13
v2.5.2
v2.5.3
v2.5.4
v2.5.5
v2.5.6
v2.5.7
v2.5.7-rc1
v2.5.8
v2.5.9
v2.6.0
v2.6.0-rc1
v2.6.0-rc2
v2.6.1
v2.6.2
v2.6.2-rc1
v2.6.3
v2.6.3-rc1
v2.6.4
v2.6.4-rc1
v2.6.5
v2.6.6
v2.6.7
v2.6.8
v2.7.0
v2.7.0-rc1
v2.7.0-rc3
v2.7.1
v2.7.2
v2.7.3
v2.7.4
v2.7.5
v2.7.6
v2.7.7
v2.8.0
v2.8.0-rc1
v2.9.0
v2.9.0-rc1
v2.9.0-rc2
v2.9.1
v2.9.1-rc1
v2.9.10
v2.9.11
v2.9.12
v2.9.2
v2.9.3
v2.9.4
v2.9.5
v2.9.6
v2.9.7
v2.9.8
v2.9.9
v3.0.0
v3.0.0-rc1
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.2
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
Select branches
Hide Pull Requests
gh-pages
nginx_refactoring
nginx_refactoring_def
v2/dev/fix-pcre-study-leak-610
v2/dev/itk-ruid-test
v2/dev/memcache_collections
v2/dev/sechash_test_case
v2/dev/v2.9.4
v2/exp/ModSecurity_for_Java
v2/exp/collection_garbage_freq
v2/exp/json_sanitizer
v2/exp/python_support
v2/master
v2/per/without_libxml_dependency
v3/dev/3.1
v3/dev/3.1-experimental
v3/dev/3.1-experimental-2374
v3/dev/3.1-experimental-II
v3/dev/3.1-experimental-III
v3/dev/3.1-experimental-test
v3/dev/experimental_yara
v3/dev/fix_using
v3/dev/github-actions-test
v3/dev/hyperscan
v3/dev/issue_215
v3/dev/issue_340
v3/dev/master
v3/dev/master-fix
v3/dev/master-no-warnings
v3/dev/master-on-workflow
v3/dev/master-on-workflow-n-travis
v3/dev/parser_trail
v3/dev/phases
v3/dev/pkg-config
v3/dev/pull_2387
v3/dev/pull_2427
v3/dev/pull_2430
v3/dev/pull_2520
v3/dev/re2
v3/dev/reload
v3/dev/reload2
v3/dev/sec_binary_rules
v3/dev/setenv
v3/dev/testing
v3/dev/wasm-experimental
v3/master
v3/twaf/3.0.2+315f98b
v3/twaf/v3.0.2
v3/twaf8.5
v3/twaf8.5-3.0.0-rc1
v3/twaf8.5-almost-gold
v3/twaf8.5-v3.0.0
v3/twaf8.5-v3.0.0-no-dynamic-rx
v3/twaf8.5-v3.0.0-perf
v3/twaf8.5-v3.0.0-perf-test
#1
#1
#10
#10
#100
#100
#101
#101
#102
#102
#103
#103
#1031
#1031
#1038
#104
#104
#1040
#1040
#1041
#1041
#1051
#1051
#1052
#1052
#106
#106
#1060
#1060
#107
#107
#1071
#1071
#108
#108
#1087
#1087
#109
#109
#1098
#1098
#11
#11
#110
#110
#1108
#1108
#111
#111
#1110
#1110
#1115
#1115
#112
#112
#1123
#1123
#113
#113
#1143
#1143
#1150
#1150
#1151
#1151
#1158
#1158
#116
#116
#1163
#1163
#1164
#1164
#1171
#1171
#1175
#1175
#1178
#1178
#1179
#1179
#118
#118
#1180
#1180
#1181
#1181
#1186
#1186
#1187
#1187
#119
#1190
#1190
#12
#12
#1200
#1200
#1204
#1204
#121
#121
#1213
#1213
#1216
#1216
#122
#122
#1220
#1220
#1223
#1223
#1224
#1224
#1225
#1225
#1231
#1233
#1233
#124
#124
#1249
#1249
#125
#125
#1256
#1256
#1257
#1257
#1258
#1258
#1259
#126
#126
#1261
#1261
#1263
#1263
#1266
#1266
#127
#127
#1270
#1270
#1271
#1271
#1274
#1274
#1279
#1279
#128
#128
#1281
#1281
#1282
#1282
#1283
#1283
#1289
#1289
#1298
#1298
#13
#13
#130
#130
#1301
#1301
#1306
#1306
#1308
#1308
#131
#131
#1324
#133
#133
#1332
#1332
#1339
#1339
#1340
#1340
#1343
#1343
#135
#135
#136
#136
#1371
#1371
#1373
#1373
#1374
#1374
#1379
#1379
#138
#138
#1380
#1380
#1381
#1381
#1382
#1382
#1383
#1383
#1384
#1384
#1385
#1385
#139
#139
#1393
#1393
#1400
#1400
#1401
#1401
#1402
#1402
#1403
#1403
#1404
#1404
#141
#141
#1410
#1410
#1413
#1413
#1414
#1414
#1415
#1415
#1429
#1429
#1433
#1433
#1436
#1436
#1439
#1439
#144
#144
#1446
#1446
#1454
#1454
#146
#146
#1467
#1467
#147
#147
#1473
#1473
#1479
#1479
#148
#148
#1485
#1485
#1486
#1486
#1487
#1487
#1488
#1488
#149
#149
#15
#15
#150
#150
#1500
#1500
#1501
#1501
#1502
#1502
#1510
#1510
#1511
#1511
#1513
#1513
#1514
#1514
#1515
#1515
#152
#152
#1523
#1523
#1524
#1524
#1525
#1525
#1526
#1527
#1527
#1530
#1530
#1536
#1536
#1538
#1538
#1539
#1540
#1540
#1541
#1541
#1543
#1545
#1545
#1571
#1571
#1572
#1572
#1577
#1583
#1598
#1598
#16
#16
#1609
#1611
#1612
#1613
#1613
#1614
#1614
#1615
#1615
#1619
#1619
#1621
#1621
#1623
#1623
#1624
#1624
#1636
#1636
#1639
#1640
#1640
#1651
#1651
#1652
#1652
#1667
#1667
#1675
#1675
#1677
#1677
#1678
#1678
#1683
#1690
#1690
#1691
#1691
#1694
#1694
#1696
#1696
#17
#17
#1701
#1701
#1702
#1702
#1713
#1713
#1714
#1715
#1715
#1716
#1716
#1721
#1721
#1730
#1730
#1735
#1735
#1737
#1737
#1738
#1738
#1739
#1739
#1740
#1740
#1744
#1744
#1747
#1747
#1748
#1748
#1749
#1749
#1750
#1750
#1751
#1751
#1752
#1752
#1755
#1755
#1756
#1756
#1757
#1757
#1758
#1758
#1759
#1759
#1760
#1760
#1761
#1761
#1765
#1765
#1769
#1769
#1771
#1771
#1775
#1775
#1781
#1781
#1783
#1783
#1786
#1786
#1787
#1787
#1788
#1788
#1790
#1790
#1792
#1792
#18
#18
#1801
#1801
#1806
#1806
#1807
#1807
#1810
#1810
#1814
#1814
#1820
#1820
#1821
#1822
#1823
#1823
#1826
#1826
#1847
#1847
#1852
#1852
#1854
#1854
#1855
#1855
#1856
#1856
#1859
#1859
#1861
#1861
#1881
#1881
#1886
#1886
#1890
#1891
#1895
#1895
#1897
#1897
#1901
#1901
#1910
#1910
#1912
#1917
#1919
#1920
#1922
#1922
#1924
#1943
#1949
#1955
#1957
#1959
#1966
#1973
#1978
#1984
#1990
#1992
#1997
#2
#2
#2002
#2003
#2007
#2011
#2012
#2012
#2014
#2015
#2016
#2017
#2018
#2023
#2024
#2031
#2032
#2045
#2045
#2046
#2048
#2049
#2057
#2058
#2059
#2060
#2063
#2068
#2071
#2073
#2092
#2094
#2094
#2095
#2097
#21
#21
#2102
#2103
#2107
#2113
#2114
#2119
#2119
#2123
#2130
#2134
#2134
#2155
#2171
#2177
#2177
#2179
#2189
#2190
#2191
#2193
#2197
#2199
#22
#22
#2201
#2202
#2203
#2205
#2214
#2219
#2225
#2229
#2234
#2235
#2236
#2239
#2253
#2261
#2263
#2265
#2295
#2297
#2304
#2304
#2315
#2316
#2317
#2321
#2322
#2342
#2348
#2353
#2353
#2363
#2368
#2369
#2370
#2374
#2375
#2378
#2379
#2387
#2393
#2394
#2396
#2399
#24
#24
#2412
#2417
#2417
#2424
#2430
#2433
#2435
#2436
#2440
#2441
#2443
#2444
#2445
#2446
#2449
#2451
#2453
#2455
#2461
#2467
#2471
#2473
#2474
#2478
#2479
#2485
#2492
#2497
#2499
#2505
#2518
#2518
#2520
#2520
#2522
#2535
#2542
#2551
#2551
#2562
#2570
#2574
#2578
#2580
#2586
#2588
#2591
#2592
#2593
#2596
#26
#26
#2600
#2602
#2604
#2607
#2612
#2616
#2619
#2620
#2620
#2621
#2622
#2633
#2634
#2635
#2638
#2642
#2643
#2644
#2656
#2657
#2660
#2661
#2663
#2667
#2673
#2677
#2680
#2681
#2681
#2685
#2686
#2688
#27
#27
#2707
#2708
#2708
#2714
#2715
#2718
#2718
#2719
#2721
#2721
#2723
#2725
#2727
#2728
#2731
#2732
#2735
#2736
#2738
#2748
#2748
#2749
#2751
#2753
#2757
#2758
#2760
#2761
#2762
#2763
#2770
#2775
#2776
#2780
#2781
#2783
#2783
#2785
#2786
#2786
#2788
#2789
#2791
#2792
#2794
#2795
#2796
#2797
#2799
#2800
#2801
#2806
#2812
#2813
#2818
#2823
#2823
#2827
#2828
#2831
#2832
#2833
#2834
#2839
#2840
#2844
#2846
#2850
#2850
#2854
#2857
#2862
#2864
#2866
#2868
#2870
#2876
#2883
#2886
#2890
#2891
#2892
#2894
#2898
#29
#2901
#2906
#2909
#2912
#2915
#2916
#2924
#2930
#2930
#2931
#2934
#2935
#2939
#2940
#2941
#2944
#2945
#2946
#2947
#2948
#2949
#2950
#2951
#2952
#2953
#2954
#2955
#2956
#2957
#2958
#2959
#2960
#2961
#2962
#2963
#2964
#2965
#2967
#2968
#2969
#2971
#2971
#2975
#2977
#2980
#2983
#2985
#2987
#2992
#2993
#2994
#2996
#2997
#2999
#3
#3
#30
#30
#3001
#3003
#3004
#3005
#3008
#3009
#3011
#3012
#3014
#3016
#3019
#3020
#3024
#3025
#3027
#3032
#3040
#3041
#3042
#3043
#3048
#3050
#3051
#3052
#3055
#3056
#3057
#3058
#3059
#3060
#3061
#3062
#3063
#3064
#3065
#3066
#3067
#3068
#3069
#3070
#3071
#3072
#3073
#3074
#3075
#3076
#3078
#3079
#3080
#3086
#3087
#3090
#3092
#3093
#3093
#3094
#3095
#3096
#3097
#3098
#3099
#31
#31
#3101
#3104
#3114
#3116
#3117
#3120
#3121
#3121
#3127
#3128
#3132
#3134
#3139
#3141
#3144
#3145
#3146
#3148
#3149
#3150
#3150
#3151
#3152
#3152
#3153
#3154
#3155
#3156
#3156
#3157
#3157
#3158
#3159
#3160
#3161
#3164
#3166
#3166
#3171
#3172
#3172
#3176
#3176
#3181
#3181
#3182
#3185
#3187
#3188
#3189
#3190
#3191
#3192
#3193
#3194
#3198
#3199
#3202
#3203
#3205
#3206
#3207
#3208
#3209
#3210
#3211
#3212
#3213
#3214
#3216
#3217
#3218
#3219
#3220
#3221
#3222
#3223
#3223
#3224
#3225
#3226
#3227
#3228
#3229
#3231
#3232
#3233
#3236
#3236
#3239
#3239
#3240
#3241
#3243
#3245
#3247
#3248
#3250
#3253
#3254
#3257
#3262
#3264
#3265
#3266
#3267
#3268
#3269
#3270
#3279
#3280
#3283
#3284
#3285
#3287
#3291
#3298
#33
#33
#3306
#3307
#3314
#3319
#3321
#3322
#3335
#3339
#3342
#3345
#3350
#3354
#3358
#3359
#3359
#3361
#3363
#3364
#3365
#3371
#3372
#3374
#3375
#3376
#3377
#3378
#3379
#3383
#3385
#3386
#3387
#3388
#3389
#3390
#3391
#3392
#3393
#3398
#34
#34
#3400
#3401
#3405
#3406
#3406
#3411
#3412
#3418
#3419
#3420
#3421
#3422
#3424
#3425
#3426
#3427
#3428
#3430
#3432
#3434
#3437
#3438
#3442
#3443
#3447
#3452
#3454
#3455
#3456
#3456
#3458
#3464
#35
#35
#36
#36
#37
#37
#38
#38
#39
#39
#4
#42
#43
#43
#44
#44
#45
#45
#46
#48
#48
#49
#49
#5
#5
#50
#50
#51
#51
#52
#52
#53
#53
#54
#54
#55
#55
#57
#57
#578
#579
#58
#58
#583
#583
#59
#59
#591
#591
#592
#592
#594
#594
#595
#595
#596
#596
#597
#597
#6
#6
#604
#604
#606
#606
#607
#607
#608
#608
#609
#609
#61
#61
#612
#612
#614
#614
#617
#617
#618
#618
#619
#619
#62
#62
#620
#620
#622
#622
#64
#64
#65
#65
#659
#66
#66
#666
#668
#668
#669
#67
#67
#672
#672
#68
#68
#692
#697
#697
#698
#698
#7
#7
#70
#70
#700
#700
#701
#701
#709
#709
#71
#71
#718
#718
#72
#72
#720
#720
#721
#721
#722
#722
#723
#723
#73
#73
#74
#74
#740
#740
#745
#745
#749
#749
#75
#757
#76
#76
#767
#767
#77
#77
#775
#775
#776
#78
#78
#782
#782
#79
#79
#794
#796
#796
#8
#8
#80
#80
#81
#81
#810
#810
#815
#815
#817
#817
#82
#82
#824
#824
#826
#826
#83
#83
#836
#836
#837
#837
#84
#84
#840
#840
#842
#842
#844
#844
#85
#85
#852
#852
#86
#86
#87
#87
#872
#872
#879
#879
#88
#88
#881
#881
#883
#883
#9
#9
#904
#904
#906
#906
#91
#91
#914
#914
#92
#92
#927
#927
#93
#93
#933
#933
#94
#94
#95
#95
#950
#950
#96
#96
#961
#97
#97
#978
#978
#98
#98
#980
#980
#982
#982
#99
#99
#996
#996
v2.1.0
v2.1.0-rc7
v2.1.1
v2.1.1-dev2
v2.1.1-dev3
v2.1.1-dev4
v2.1.1-rc1
v2.1.1-rc2
v2.1.2
v2.1.2-rc1
v2.1.2-rc2
v2.1.2-rc3
v2.1.3
v2.1.3-rc1
v2.1.3-rc2
v2.1.4
v2.1.4-rc1
v2.1.4-rc2
v2.1.4-rc3
v2.1.4-rc4
v2.1.5
v2.1.5-rc1
v2.1.6
v2.1.6-rc1
v2.1.7
v2.2.0-dev1
v2.5.0
v2.5.0-dev2
v2.5.0-rc1
v2.5.0-rc2
v2.5.0-rc3
v2.5.0-rc3-pre2
v2.5.0-rc4
v2.5.1
v2.5.1-rc1
v2.5.10
v2.5.10-dev1
v2.5.10-dev2
v2.5.10-dev3
v2.5.11
v2.5.12
v2.5.13
v2.5.2
v2.5.3
v2.5.4
v2.5.5
v2.5.6
v2.5.7
v2.5.7-rc1
v2.5.8
v2.5.9
v2.6.0
v2.6.0-rc1
v2.6.0-rc2
v2.6.1
v2.6.2
v2.6.2-rc1
v2.6.3
v2.6.3-rc1
v2.6.4
v2.6.4-rc1
v2.6.5
v2.6.6
v2.6.7
v2.6.8
v2.7.0
v2.7.0-rc1
v2.7.0-rc3
v2.7.1
v2.7.2
v2.7.3
v2.7.4
v2.7.5
v2.7.6
v2.7.7
v2.8.0
v2.8.0-rc1
v2.9.0
v2.9.0-rc1
v2.9.0-rc2
v2.9.1
v2.9.1-rc1
v2.9.10
v2.9.11
v2.9.12
v2.9.2
v2.9.3
v2.9.4
v2.9.5
v2.9.6
v2.9.7
v2.9.8
v2.9.9
v3.0.0
v3.0.0-rc1
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.2
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
-
07fb580415
Added PR's #3233 and #3231
Ervin Hegedus
2024-08-28 14:34:58 +02:00 -
9148668571
Merge pull request #3231 from eduar-hte/remove-copies-transformations
Ervin Hegedus
2024-08-28 14:33:59 +02:00 -
4951702d45
Merge pull request #3233 from eduar-hte/remove-copies-pm-operator
Ervin Hegedus
2024-08-28 13:31:02 +02:00 -
3e9d8107a8
Removed multiple heap-allocated copies in parse_pm_content - The previous version of this function was doing three strdup copies to parse the pm content. The updated version only copies the value once (in order not to modify the Operator's m_param member variable), and then performs the updates inline. - Binary parsing was broken because digits were not compared as characters. - Fail parsing when an invalid hex character is found. - Error message in parse_pm_content would reference freed memory if accessed by caller. Removed anyway because it was unused.
Eduardo Arias
2024-08-09 13:01:37 -07:00 -
a6d64bf615
Replaced VALID_HEX, ISODIGIT & NBSP macros in string.h - Moved them into modsecurity::utils::string to avoid polluting the global namespace.
Eduardo Arias
2024-08-17 00:53:54 +00:00 -
2f5dac5c4c
Simplified initialization of Transformation's action_kind - Some of the Transformation classes would initialize their Action's action_kind using the default (using Transformation constructor without an action_kind parameter). - Others, however, would use that constructor and initialize action_kind manually in their constructor, but setting the default value (RunTimeBeforeMatchAttemptKind = 1), which was redundant. - Removed unused Transformation constructor to specify action_kind. - Converted Action::Kind into an 'enum class' to require using the enum constants (instead of integer values, which are difficult to track in the codebase and change)
Eduardo Arias
2024-08-19 11:26:56 -07:00 -
7023c0a8b4
Refactored sha1 & md5 utils to share implementation and reduce code duplication.
Eduardo Arias
2024-08-19 10:34:00 -07:00 -
fedec96a7e
Refactored base64 utils to share implementation and reduce code duplication.
Eduardo Arias
2024-08-19 10:25:36 -07:00 -
34da8eeeee
Pass RuleWithActions::executeTransformation arguments by reference - This function already expects these arguments not to be null pointers, doesn't validate them and just dereference them. - In order to make this explicit and enforced by the compiler, they're now passed as references.
Eduardo Arias
2024-08-09 13:03:34 -07:00 -
b647dbd905
Remove unnecessary heap-allocation & copy in Transaction::extractArguments - utils::urldecode_nonstrict_inplace decodes inplace so key & value, which are values returned by utils::string::ssplit_pair can be just be modified and do not need to be copied. - Updated signature of utils::urldecode_nonstrict_inplace, as its two callers already have std::string values.
Eduardo Arias
2024-06-01 21:59:16 +00:00 -
021d0caa33
Perform NormalisePath & NormalisePathWin transformations in-place
Eduardo Arias
2024-08-19 10:20:12 -07:00 -
2c3c228725
Perform Utf8ToUnicode transformation in-place - Removed inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 10:15:12 -07:00 -
17a2cbd164
Perform UrlDecodeUni & UrlDecode transformations in-place - Use std::string in UrlEncode transformation, instead of manually memory management. This avoids an additional copy after completing encoding by just swapping the encoded value and the input. - Removed inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 09:12:12 -07:00 -
8bf4d96e6b
Perform HtmlEntityDecode transformation in-place - Removed inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 09:04:42 -07:00 -
7d5c9faa43
Perform JsDecode transformation in-place - Removed inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 08:32:27 -07:00 -
a520369da0
Perform EscapeSeqDecode transformation in-place - Removed ansi_c_sequences_decode_inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 08:28:04 -07:00 -
727f2bf840
Perform CssDecode transformation in-place - Removed inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 08:24:31 -07:00 -
e687140d05
Perform HexDecode transformation in-place - Removed inplace helper function from the class, as it's only referenced by the implementation.
Eduardo Arias
2024-08-19 08:12:00 -07:00 -
4670710376
Perform LowerCase & UpperCase transformations in-place - Refactored to share implementation and reduce code duplication.
Eduardo Arias
2024-08-19 08:06:00 -07:00 -
fd8a979463
Perform SqlHexDecode transformation in-place - Validate buffer size before accessing data. The previous implementation would only check that there was a character available in the buffer but could continue processing/reading characters from an hex representation without checking bounds. - Removed inplace & mytolower helper functions from the class, as they're only referenced by the implementation. - Removed duplicate VALID_HEX & ISODIGIT macros, already in src/utils/string.h.
Eduardo Arias
2024-08-19 07:55:41 -07:00 -
2915ee60e2
Perform Trim, TrimLeft & TrimRight transformations in-place
Eduardo Arias
2024-08-19 07:45:16 -07:00 -
74d150c068
Perform RemoveCommentsChar, RemoveComments & ReplaceComments transformations in-place
Eduardo Arias
2024-08-19 07:30:11 -07:00 -
da775eca81
Perform ReplaceNulls transformation in-place
Eduardo Arias
2024-08-19 08:41:18 -07:00 -
1505025990
Perform RemoveNulls & RemoveWhitespace transformations in-place - Refactored to share implementation.
Eduardo Arias
2024-08-19 07:21:22 -07:00 -
1236d9a7cd
Perform CompressWhitespace transformation in-place
Eduardo Arias
2024-08-19 07:14:11 -07:00 -
13203ae5e7
Perform CmdLine transformation in-place
Eduardo Arias
2024-08-19 07:09:26 -07:00 -
3ff72fbbc5
Perform ParityEven7bit, ParityOdd7bit & ParityZero7bit transformations in-place - Refactored to share implementations of ParityEven7bit & ParityOdd7bit.
Eduardo Arias
2024-08-19 01:48:38 +00:00 -
5d39890783
Updated Transformation::evaluate signature to allow for in-place updates, removing unnecessary heap allocated copies. - Renamed Transformation::evaluate to Transformation::transform to avoid confusion with Action's overload methods. - Updated Transformation::transform signature to receive the value by reference and perform the transformation inline, if possible. - Some transformations still need to use a temporary std::string to perform their work, and then copy the result back. - Made Transformation::transform methods const and updated Transaction parameter to be const. - Transaction parameter could not be removed because it's used by just a single transformation, UrlDecodeUni. - Removed std::string Action::evaluate(const std::string &exp, Transaction *transaction); which was only implemented by Transformation but was not used from the base class, but only after downcasting to Transformation, so it can just be declared there (and not pollute other actions with a default member implementation -that does nothing- which is never called).
Eduardo Arias
2024-05-14 01:47:59 +00:00 -
094143801a
Added PR #3232
Ervin Hegedus
2024-08-26 21:48:46 +02:00 -
97c8766ef1
Merge pull request #3232 from eduar-hte/failed-unit-tests-automake-output
Ervin Hegedus
2024-08-26 21:47:32 +02:00 -
d55495e1dc
Added PR #3241
Ervin Hegedus
2024-08-26 17:59:11 +02:00 -
7cc689032f
Merge pull request #3241 from marcstern/v2/pr/ap_log_perror
Ervin Hegedus
2024-08-26 17:58:25 +02:00 -
6be2ee534a
Fixed ap_log_perror() usage Replaces #3236
Marc Stern
2024-08-26 17:17:36 +02:00 -
207525e194
Added PR #3191
Ervin Hegedus
2024-08-26 16:38:30 +02:00 -
f65415ae8a
Merge pull request #3191 from marcstern/v2/pr/mem_leak_re
Ervin Hegedus
2024-08-26 16:37:01 +02:00 -
315b3d6e77
Lua::run: Move logging of
strparameter to higher log level.David Kirstein
2024-08-26 08:38:48 +02:00 -
6e384d13ab
Added PR #3190
Ervin Hegedus
2024-08-20 15:27:44 +02:00 -
fd0e042abc
Merge pull request #3190 from marcstern/v2/pr/ci_log
Ervin Hegedus
2024-08-20 15:25:13 +02:00 -
110b61f6d7
Merge branch 'v2/master' into v2/pr/ci_log
Ervin Hegedus
2024-08-19 16:57:10 +02:00 -
d996f04e3a
Add trailing
::sequenceErvin Hegedus
2024-08-19 16:47:09 +02:00 -
046d3eb3ec
Fixed two error messages
Marc Stern
2024-08-19 14:19:05 +02:00 -
7f4e416fc4
Added PR #3202
Ervin Hegedus
2024-08-18 22:59:22 +02:00 -
e7e11d972f
Merge pull request #3202 from marcstern/v2/pr/assert
Ervin Hegedus
2024-08-18 22:58:06 +02:00 -
df081af870
Adjusted pthread LDFLAG in examples required for multithreading. - Some versions of gcc/libc require setting the pthread flag when using std::thread, which to implement it. - This was found compiling the library in a Debian (bullseye) container.
Eduardo Arias
2024-08-16 05:59:38 -07:00 -
a5f223cb52
Individual test result should not be printed for automake output - Test results output escape characters to highlight whether the test passed or failed. Additionally, the input & output for each test can include non-ASCII characters. These characters break parsing of results (.log & .trs files) with grep, as the files are interpreted to be binary.
Eduardo Arias
2024-08-17 22:36:30 +00:00 -
60d07a5547
added one more NULL check at run-time
Marc Stern
2024-08-16 09:23:11 +02:00 -
752ab76238
Merge pull request #3229 from eduar-hte/pthread-makefile
Ervin Hegedus
2024-08-14 22:07:24 +02:00 -
4edeca70e4
Added "::error" in error message
Marc Stern
2024-08-14 19:12:03 +02:00 -
4b391834ec
added more NULL checks at run-time
Marc Stern
2024-08-14 19:09:15 +02:00 -
0066a67911
added more NULL checks at run-time
Marc Stern
2024-08-14 19:00:25 +02:00 -
22a6829690
added more NULL checks at run-time
Marc Stern
2024-08-14 18:44:45 +02:00 -
2cb1d032e3
Restore pthread LDFLAG.
Eduardo Arias
2024-08-14 08:46:30 -07:00 -
71bea86e91
Added PR #3228
Ervin Hegedus
2024-08-14 14:56:42 +02:00 -
b4f52325bd
Merge pull request #3228 from eduar-hte/asctime-multithread
Ervin Hegedus
2024-08-14 14:55:53 +02:00 -
e5bbd89399
re-added some NULL check at run-time, with an error message on stderr
Marc Stern
2024-08-14 13:53:52 +02:00 -
1680f5be90
removed comment
Marc Stern
2024-08-14 12:56:59 +02:00 -
746f4d7e80
Added PR #3227
Ervin Hegedus
2024-08-14 12:37:33 +02:00 -
554bd30e74
Merge pull request #3227 from eduar-hte/pm-operator-multithreading
Ervin Hegedus
2024-08-14 12:36:54 +02:00 -
c9af0c747e
Merge pull request #3221 from eduar-hte/unittest-multithreaded
Ervin Hegedus
2024-08-14 12:18:07 +02:00 -
04dff87623
Added PR #3193
Ervin Hegedus
2024-08-14 10:59:56 +02:00 -
277e7e2bf6
Merge pull request #3193 from marcstern/v2/pr/useless
Ervin Hegedus
2024-08-14 10:59:03 +02:00 -
0a9e0aa67b
Added PR #3226
Ervin Hegedus
2024-08-14 09:32:08 +02:00 -
8cfb9112fb
Merge pull request #3226 from airween/v2/mpinvcharreqbody
Ervin Hegedus
2024-08-14 09:31:20 +02:00 -
c4b2723a4f
Added PR #3225
Ervin Hegedus
2024-08-14 09:07:33 +02:00 -
a6b287e120
Merge pull request #3225 from airween/v3/mpinvcharreqbody
Ervin Hegedus
2024-08-14 09:06:14 +02:00 -
ee5f95eb04
Added support to run unit tests in a multithreaded context - This is controlled by specifying the 'mtstress' argument when running
unit_test. - The goal is to detect if the operator/transformation fails in this context. - In this mode, the test will be executed 5'000 times in 50 threads concurrently. - Allocation & initialization of the operator/transformation is performed once in the main thread, while the evaluation is executed in the threads. - This is consistent with the library's support for multithreading, where initialization and loading of rules is expected to run once. See issue #3215.Eduardo Arias
2024-08-09 06:54:35 -07:00 -
23a341eb6a
Calculate sizes of strftime buffers based on format strings - Leverage std::size to determine buffer size at compile time. - Simplified 'TimeMon::evaluate' implementation as it was using strftime to get the month, convert the string to int, and then decrement it by one to make it zero based. This same value is already available in the 'struct tm' previously generated with the call to localtime_r (and where the month is already zero-based)
Eduardo Arias
2024-08-12 08:47:04 -07:00 -
5e6fcbc60b
Replace usage of std::ctime, which is not safe for use in multithreaded contexts - std::ctime returns a pointer to a string that "may be shared between std::asctime and std::ctime, and may be overwritten on each invocation of any of those functions.". - https://en.cppreference.com/w/cpp/chrono/c/ctime - Replaced with call to strftime to generate the same string representation (using the format string: %c) - Leveraged localtime_r (which is thread-safe) to convert time_t to struct tm, as required by strftime.
Eduardo Arias
2024-08-12 07:58:06 -07:00 -
8d6b185856
Removed unnecessary lock to call acmp_process_quick in Pm::evaluate - This was introduced in commit
119a6fc&7d786b3because of a potential issue reported in #1573. - The ACMP tree structure is initialized when the operator is initialized. - During transaction execution the ACMP tree structure is only 'read' while traversing the tree (in acmp_process_quick) so this is safe for use in a multi-threaded environment.Eduardo Arias
2024-08-09 09:41:37 -07:00 -
ffecae98d3
Update CHANGES
Ervin Hegedus
2024-08-13 19:35:17 +02:00 -
f42bc38f4c
Update CHANGES
Ervin Hegedus
2024-08-13 19:35:14 +02:00 -
718d121ee3
Merge pull request #3216 from eduar-hte/inmemory-collection-shared-mutex
Ervin Hegedus
2024-08-13 19:30:14 +02:00 -
32f6f78e78
Merge pull request #3222 from eduar-hte/remove-copies
Ervin Hegedus
2024-08-13 19:25:11 +02:00 -
6388d88f38
Check if the MP header contains invalid character
Ervin Hegedus
2024-08-13 18:26:18 +02:00 -
e6e3417e9d
Remove unnecessary assert()
Ervin Hegedus
2024-08-13 11:07:44 +02:00 -
f27c85cf47
Check if the MP header contains invalid character
Ervin Hegedus
2024-08-13 11:07:18 +02:00 -
77adb57524
Avoid std::string copy in ssplit argument - Other minor changes reported by sonarcloud
Eduardo Arias
2024-08-12 06:18:20 -07:00 -
305f33fea1
Merge pull request #3224 from airween/v3/sethostnametestfix
Ervin Hegedus
2024-08-12 20:39:30 +02:00 -
eb26b7960c
Fix regression test result; Add test to main test-suite list
Ervin Hegedus
2024-08-12 18:46:19 +02:00 -
935e68c816
Merge pull request #3192 from marcstern/v2/pr/errorlog
Ervin Hegedus
2024-08-12 17:17:15 +02:00 -
d32c8f1ad8
Fixed invalid logging
Marc Stern
2024-08-12 17:06:35 +02:00 -
914c1a1cb2
Merge pull request #3194 from marcstern/v2/pr/PCRE_ERROR_NOMATCH
Ervin Hegedus
2024-08-12 16:40:40 +02:00 -
cc0f893854
Removed unused overload of dash_if_empty that sonarcloud flags as potential buffer overflow
Eduardo Arias
2024-08-09 14:02:40 -07:00 -
8b17f3691f
Inline string functions
Eduardo Arias
2024-05-24 21:11:21 -03:00 -
1534ee2448
Removed unnecessary copies
Eduardo Arias
2024-05-30 16:32:16 +00:00 -
f8dd09f7c9
Avoid creating a new std::string on the heap to create VariableValue - Introduced helper method addVariableOrigin to reduce code duplication.
eduar-hte
2024-05-18 16:55:41 +00:00 -
bb07de9ad7
toupper/tolower is already receiving a copy, so it doesn't need to create a new one to transform it - Make functions inline to improve performance - Introduced helper method toCaseHelper to remove code duplication
Eduardo Arias
2024-04-28 21:45:34 -03:00 -
4bf9616f9e
Adding multithreaded example from issue #3054 (by airween) - Rewritten to use C++ libModSecurity API and std::thread (instead of pthreads)
Eduardo Arias
2024-08-09 10:56:36 -07:00 -
293cd214c7
Removed usage of pthreads and replaced with std C++ features - Replaced pthread_mutex_t in modsecurity::operators::Pm with std::mutex - Replaced pthread's thread usage in reading_logs_via_rule_message example with std::thread. - Simplified and modernized C++ code. - Removed unnecessary includes of pthread.h
Eduardo Arias
2024-08-07 13:54:58 -07:00 -
4e15f9ef71
Turn off LMDB by default in Windows build to align with defaults for other platforms - Replaced WITHOUT_XXX build options with WITH_XXX to make it easier to understand and configure. - Updated GitHub workflow to align with these changes and include a build 'with lmdb' (again, analogous to non-Windows configurations)
Eduardo Arias
2024-08-07 11:50:55 -07:00 -
e2b3c9594f
Prevent concurrent access to data structure in resolve methods - As reported in #3054, the resolve methods in InMemoryPerProcess are not acquiring a lock/mutex to prevent concurrent access to the data structures that may be modified at the same time from other threads, and thus triggering undefined behaviour. - Replace inheritance of std::unordered_multimap data structure with data member to prevent potential clients to use it without acquiring the mutex to protect concurrent access. - Replace pthreads lock with std C++11 std::shared_mutex - Provides exclusive/shared lock access so that multiple readers can access the data at the same time, but only one writer. this is used to favor query performance by allowing more concurrent access to the data until an update needs to be performed. - Simplifies acquisition and disposal of lock/mutex with std::lock_guard, which has RAII semantics. - NOTE: Because std::shared_mutex is not recursive, calls to another function that tries to acquire the lock will fail. Introduced __store & __updateFirst helper methods to workaround this. - Updates to InMemoryPerProcess::resolveFirst - Updated the code to store the expired var in 'expiredVars' to delete them after iterating over the range (and releasing the read lock, as 'delIfExpired' needs to acquire it for exclusive access), as the current call to 'delIfExpired' would invalidate the range triggering undefined behaviour on the following iteration. - Noticed that in commit
118e1b3the call to 'delIfExpired' in this function is done using 'it->second.getValue()'' instead of 'it->first', which seems incorrect (based on similar code in other resolveXXX functions). - Updated InMemoryPerProcess::delIfExpired to use 'std::find_if' (with a lambda that matches both the key and the 'isExpired' condition) because the data structure is a multimap. The version introduced in commit118e1b3could find an entry (not necessarily the first, because the map is unordered) where 'isExpired' is 'false' and exit, while another entry could be expired.Eduardo Arias
2024-08-07 08:33:03 -07:00 -
c575dce3d3
Added PR 3218, 3219, 3220
Ervin Hegedus
2024-08-09 17:40:33 +02:00 -
7bdc3c825c
Merge pull request #3220 from eduar-hte/string-null
Ervin Hegedus
2024-08-09 17:37:47 +02:00 -
3a83196a71
Merge pull request #3219 from eduar-hte/cpp17
Ervin Hegedus
2024-08-09 17:34:02 +02:00 -
6f0e566f98
Merge pull request #3218 from eduar-hte/remove-dynamic-casts
Ervin Hegedus
2024-08-09 17:24:55 +02:00 -
c917d6a2dc
Initialize variable in if statement to avoid doing dynamic_cast twice - Refactored duplicate code in RuleWithOperator::getVariablesExceptions - Leveraged auto to simplify declaration of dynamic_cast pointers.
Eduardo Arias
2024-08-08 12:49:48 -07:00 -
18378c10f8
Removed unnecessary dynamic_casts
Eduardo Arias
2024-05-18 20:32:21 +00:00 -
09980324a7
Added PR #3114
Ervin Hegedus
2024-08-08 21:03:10 +02:00 -
a23e88f79f
Merge pull request #3114 from airween/v3/sonarmemleakfix
Ervin Hegedus
2024-08-08 21:02:15 +02:00 -
30a68de92d
Creating a std::string with a null pointer is undefined behaviour. - cppreference mentions this about the constructor that receives a const char *: - Constructs the string with the contents initialized with a copy of the null-terminated character string pointed to by s. The length of the string is determined by the first null character. The behavior is undefined if [s, s + Traits::length(s)) is not a valid range (for example, if s is a null pointer). - C++23 introduces a deleted constructor to prevent this in static scenarios, which is how this issue was detected.
Eduardo Arias
2024-05-21 21:02:25 +00:00