libddwaf 1.3.0.2.0 → 1.5.1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 761413998bd5c350c78413a3b1ab14de9d7b31e5784e206d4a1e24747e84943b
4
- data.tar.gz: 99f0a81a21c6e6cb78895422fc93345b2e466adc2977e97d0fb69f2ca7d4968c
3
+ metadata.gz: 38d7409fb731162a26f8ab1a510f2aa3282a9d1889afee95cbc4468be3116f5d
4
+ data.tar.gz: c92a1e8d70a5cdc3a8b2d9e42526418013a0d103aa1f827ba47cb857e137281f
5
5
  SHA512:
6
- metadata.gz: ef74395170939fb40cca96f4b93628987d980d579a05083cbf7e738e239be2bd61bfde3e3666e5a6227f57681bd3961a24d81f33140e463110f80c916b5311d0
7
- data.tar.gz: 834f41db4de087c0dc8df8ba418c54ff5d530223e94a627f65f818482183678626a89dcdc07b91045b66ae0b8d75b6f6e6452ff9e5f535bad231625a7cb8b340
6
+ metadata.gz: a256ca93952b9633869b4801212251d04c9d64a84b8276dbc58df0e5aa8249258d4005a2204e3c4db1d2b768f52c9d265731da5c1b0a696a1f812ef7b5662ef1
7
+ data.tar.gz: e947f17969ddbe0b996835acff0eff24f7870eacbe1a19df3536623c65ccf9b9c5d392d518e318e657ef4da3513f0f885fb9a040c9c3b7e603ddf13b8af88339
@@ -0,0 +1,33 @@
1
+ name: Lint
2
+ on:
3
+ - push
4
+
5
+ jobs:
6
+ style-check:
7
+ name: Style check
8
+ runs-on: ubuntu-20.04
9
+ container:
10
+ image: ruby:3.1
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v2
14
+ - name: Bundle
15
+ run: |
16
+ bundle install
17
+ - name: Run Rubocop
18
+ run: |
19
+ bundle exec rubocop -D
20
+ type-check:
21
+ name: Type check
22
+ runs-on: ubuntu-20.04
23
+ container:
24
+ image: ruby:3.1
25
+ steps:
26
+ - name: Checkout
27
+ uses: actions/checkout@v2
28
+ - name: Bundle
29
+ run: |
30
+ bundle install
31
+ - name: Run Steep
32
+ run: |
33
+ bundle exec steep check
@@ -37,31 +37,24 @@ jobs:
37
37
  include:
38
38
  - os: ubuntu-20.04
39
39
  cpu: x86_64
40
- platform: x86_64-linux
41
- - os: ubuntu-20.04
42
- cpu: aarch64
43
- platform: aarch64-linux
44
- - os: ubuntu-20.04
45
- cpu: x86_64
46
- platform: x86_64-linux-gnu
47
- - os: ubuntu-20.04
48
- cpu: aarch64
49
- platform: aarch64-linux-gnu
50
- - os: ubuntu-20.04
51
- cpu: x86_64
52
- platform: x86_64-linux-musl
40
+ platform: x86_64-linux:llvm
41
+ artifact: x86_64-linux-llvm
53
42
  - os: ubuntu-20.04
54
43
  cpu: aarch64
55
- platform: aarch64-linux-musl
44
+ platform: aarch64-linux:llvm
45
+ artifact: aarch64-linux-llvm
56
46
  - os: ubuntu-20.04
57
47
  cpu: universal
58
48
  platform: java
59
- - os: macos-10.15
49
+ artifact: java
50
+ - os: macos-12
60
51
  cpu: x86_64
61
52
  platform: x86_64-darwin
62
- - os: macos-10.15
53
+ artifact: x86_64-darwin
54
+ - os: macos-12
63
55
  cpu: arm64
64
56
  platform: arm64-darwin
57
+ artifact: arm64-darwin
65
58
  name: Build package (${{ matrix.platform }})
66
59
  runs-on: ${{ matrix.os }}
67
60
  steps:
@@ -79,7 +72,7 @@ jobs:
79
72
  - name: Upload gem
80
73
  uses: actions/upload-artifact@v2
81
74
  with:
82
- name: libddwaf-${{ matrix.platform }}-${{ github.run_id }}-${{ github.sha }}
75
+ name: libddwaf-${{ matrix.artifact }}-${{ github.run_id }}-${{ github.sha }}
83
76
  path: pkg
84
77
  test-ruby:
85
78
  needs: package-ruby
@@ -130,54 +123,35 @@ jobs:
130
123
  - os: ubuntu-20.04
131
124
  cpu: x86_64
132
125
  platform: x86_64-linux
126
+ artifact: x86_64-linux-llvm
133
127
  image: ruby:2.6
134
128
  qemu: amd64
135
129
  libc: gnu
136
130
  - os: ubuntu-20.04
137
131
  cpu: aarch64
138
132
  platform: aarch64-linux
133
+ artifact: aarch64-linux-llvm
139
134
  image: ruby:2.6
140
135
  qemu: aarch64
141
136
  libc: gnu
142
137
  - os: ubuntu-20.04
143
138
  cpu: x86_64
144
139
  platform: x86_64-linux
140
+ artifact: x86_64-linux-llvm
145
141
  image: ruby:2.6-alpine
146
142
  qemu: amd64
147
143
  libc: musl
148
144
  - os: ubuntu-20.04
149
145
  cpu: aarch64
150
146
  platform: aarch64-linux
151
- image: ruby:2.6-alpine
152
- qemu: aarch64
153
- libc: musl
154
- - os: ubuntu-20.04
155
- cpu: x86_64
156
- platform: x86_64-linux-gnu
157
- image: ruby:2.6
158
- qemu: amd64
159
- libc: gnu
160
- - os: ubuntu-20.04
161
- cpu: aarch64
162
- platform: aarch64-linux-gnu
163
- image: ruby:2.6
164
- qemu: aarch64
165
- libc: gnu
166
- - os: ubuntu-20.04
167
- cpu: x86_64
168
- platform: x86_64-linux-musl
169
- image: ruby:2.6-alpine
170
- qemu: amd64
171
- libc: musl
172
- - os: ubuntu-20.04
173
- cpu: aarch64
174
- platform: aarch64-linux-musl
147
+ artifact: aarch64-linux-llvm
175
148
  image: ruby:2.6-alpine
176
149
  qemu: aarch64
177
150
  libc: musl
178
151
  - os: ubuntu-20.04
179
152
  cpu: x86_64
180
153
  platform: java
154
+ artifact: java
181
155
  image: jruby:9.3.0.0
182
156
  qemu: amd64
183
157
  libc: gnu
@@ -199,7 +173,7 @@ jobs:
199
173
  echo "::set-output name=id::$(cat container_id)"
200
174
  - uses: actions/download-artifact@v2
201
175
  with:
202
- name: libddwaf-${{ matrix.platform }}-${{ github.run_id }}-${{ github.sha }}
176
+ name: libddwaf-${{ matrix.artifact }}-${{ github.run_id }}-${{ github.sha }}
203
177
  path: pkg
204
178
  - name: List artifact files
205
179
  run: find .
@@ -211,17 +185,17 @@ jobs:
211
185
  run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} gem install --verbose pkg/*.gem
212
186
  - name: Run smoke test
213
187
  run: |
214
- docker exec -w "${PWD}" ${{ steps.container.outputs.id }} ruby -r 'libddwaf' -e 'v = Datadog::AppSec::WAF::LibDDWAF::Version.new; Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version(v); p [v[:major], v[:minor], v[:patch]]'
188
+ docker exec -w "${PWD}" ${{ steps.container.outputs.id }} ruby -r 'libddwaf' -e 'p Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version'
215
189
  test-darwin:
216
190
  needs: package-binary
217
191
  strategy:
218
192
  fail-fast: false
219
193
  matrix:
220
194
  include:
221
- - os: macos-10.15
195
+ - os: macos-12
222
196
  cpu: x86_64
223
197
  platform: x86_64-darwin
224
- # - os: macos-11.0
198
+ # - os: macos-12
225
199
  # cpu: arm64
226
200
  # platform: arm64-darwin
227
201
  name: Test package (${{ matrix.platform }})
@@ -238,4 +212,4 @@ jobs:
238
212
  run: gem install --verbose pkg/*.gem
239
213
  - name: Run smoke test
240
214
  run: |
241
- ruby -r 'libddwaf' -e 'v = Datadog::AppSec::WAF::LibDDWAF::Version.new; Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version(v); p [v[:major], v[:minor], v[:patch]]'
215
+ ruby -r 'libddwaf' -e 'p Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version'
@@ -10,127 +10,127 @@ jobs:
10
10
  include:
11
11
  - os: ubuntu-20.04
12
12
  cpu: x86_64
13
- platform: x86_64-linux-gnu
13
+ platform: x86_64-linux
14
14
  image: ruby:3.1
15
15
  qemu: amd64
16
16
  libc: gnu
17
17
  - os: ubuntu-20.04
18
18
  cpu: aarch64
19
- platform: aarch64-linux-gnu
19
+ platform: aarch64-linux
20
20
  image: ruby:3.1
21
21
  qemu: arm64
22
22
  libc: gnu
23
23
  - os: ubuntu-20.04
24
24
  cpu: x86_64
25
- platform: x86_64-linux-gnu
25
+ platform: x86_64-linux
26
26
  image: ruby:3.0
27
27
  qemu: amd64
28
28
  libc: gnu
29
29
  - os: ubuntu-20.04
30
30
  cpu: aarch64
31
- platform: aarch64-linux-gnu
31
+ platform: aarch64-linux
32
32
  image: ruby:3.0
33
33
  qemu: arm64
34
34
  libc: gnu
35
35
  - os: ubuntu-20.04
36
36
  cpu: x86_64
37
- platform: x86_64-linux-gnu
37
+ platform: x86_64-linux
38
38
  image: ruby:2.7
39
39
  qemu: amd64
40
40
  libc: gnu
41
41
  - os: ubuntu-20.04
42
42
  cpu: aarch64
43
- platform: aarch64-linux-gnu
43
+ platform: aarch64-linux
44
44
  image: ruby:2.7
45
45
  qemu: arm64
46
46
  libc: gnu
47
47
  - os: ubuntu-20.04
48
48
  cpu: x86_64
49
- platform: x86_64-linux-gnu
49
+ platform: x86_64-linux
50
50
  image: ruby:2.6
51
51
  qemu: amd64
52
52
  libc: gnu
53
53
  - os: ubuntu-20.04
54
54
  cpu: aarch64
55
- platform: aarch64-linux-gnu
55
+ platform: aarch64-linux
56
56
  image: ruby:2.6
57
57
  qemu: arm64
58
58
  libc: gnu
59
59
  - os: ubuntu-20.04
60
60
  cpu: x86_64
61
- platform: x86_64-linux-gnu
61
+ platform: x86_64-linux
62
62
  image: ruby:2.5
63
63
  qemu: amd64
64
64
  libc: gnu
65
65
  - os: ubuntu-20.04
66
66
  cpu: x86_64
67
- platform: x86_64-linux-gnu
67
+ platform: x86_64-linux
68
68
  image: ruby:2.4
69
69
  qemu: amd64
70
70
  libc: gnu
71
71
  - os: ubuntu-20.04
72
72
  cpu: x86_64
73
- platform: x86_64-linux-gnu
73
+ platform: x86_64-linux
74
74
  image: ruby:2.3
75
75
  qemu: amd64
76
76
  libc: gnu
77
77
  - os: ubuntu-20.04
78
78
  cpu: x86_64
79
- platform: x86_64-linux-gnu
79
+ platform: x86_64-linux
80
80
  image: ruby:2.2
81
81
  qemu: amd64
82
82
  libc: gnu
83
83
  - os: ubuntu-20.04
84
84
  cpu: x86_64
85
- platform: x86_64-linux-gnu
85
+ platform: x86_64-linux
86
86
  image: ruby:2.1
87
87
  qemu: amd64
88
88
  libc: gnu
89
89
  - os: ubuntu-20.04
90
90
  cpu: x86_64
91
- platform: x86_64-linux-musl
91
+ platform: x86_64-linux
92
92
  image: ruby:3.1-alpine
93
93
  qemu: amd64
94
94
  libc: musl
95
95
  - os: ubuntu-20.04
96
96
  cpu: aarch64
97
- platform: aarch64-linux-musl
97
+ platform: aarch64-linux
98
98
  image: ruby:3.1-alpine
99
99
  qemu: arm64
100
100
  libc: musl
101
101
  - os: ubuntu-20.04
102
102
  cpu: x86_64
103
- platform: x86_64-linux-musl
103
+ platform: x86_64-linux
104
104
  image: ruby:3.0-alpine
105
105
  qemu: amd64
106
106
  libc: musl
107
107
  - os: ubuntu-20.04
108
108
  cpu: aarch64
109
- platform: aarch64-linux-musl
109
+ platform: aarch64-linux
110
110
  image: ruby:3.0-alpine
111
111
  qemu: arm64
112
112
  libc: musl
113
113
  - os: ubuntu-20.04
114
114
  cpu: x86_64
115
- platform: x86_64-linux-musl
115
+ platform: x86_64-linux
116
116
  image: ruby:2.7-alpine
117
117
  qemu: amd64
118
118
  libc: musl
119
119
  - os: ubuntu-20.04
120
120
  cpu: aarch64
121
- platform: aarch64-linux-musl
121
+ platform: aarch64-linux
122
122
  image: ruby:2.7-alpine
123
123
  qemu: arm64
124
124
  libc: musl
125
125
  - os: ubuntu-20.04
126
126
  cpu: x86_64
127
- platform: x86_64-linux-musl
127
+ platform: x86_64-linux
128
128
  image: ruby:2.6-alpine
129
129
  qemu: amd64
130
130
  libc: musl
131
131
  - os: ubuntu-20.04
132
132
  cpu: aarch64
133
- platform: aarch64-linux-musl
133
+ platform: aarch64-linux
134
134
  image: ruby:2.6-alpine
135
135
  qemu: arm64
136
136
  libc: musl
@@ -196,13 +196,10 @@ jobs:
196
196
  fail-fast: false
197
197
  matrix:
198
198
  include:
199
- - os: macos-10.15
199
+ - os: macos-12
200
200
  cpu: x86_64
201
201
  platform: x86_64-darwin
202
- - os: macos-11.0
203
- cpu: x86_64
204
- platform: x86_64-darwin
205
- # - os: macos-11.0
202
+ # - os: macos-12
206
203
  # cpu: arm64
207
204
  # platform: arm64-darwin
208
205
  name: Test (${{ matrix.os }} ${{ matrix.cpu }})
data/CHANGELOG.md ADDED
@@ -0,0 +1,74 @@
1
+ # 2022-10-04 v1.5.1.0.0
2
+
3
+ - Update to libddwaf 1.5.1
4
+ - Add live rule data update API
5
+ - Add live rule toggle API
6
+ - Add libddwaf boolean type support
7
+ - Add Ruby to libddwaf object conversion limits
8
+ - Add Ruby to libddwaf object converter optional coercion of scalars to string
9
+ - Add static type checking via RBS+Steep
10
+ - Change version to return a string
11
+ - Change free function to be passed as config instead of context init argument
12
+ - Change result to include action list
13
+ - Change return code from action to status
14
+ - Change handle and context freeing model from GC-based to explicit
15
+ - Fix double-free upon finalization of retained C objects
16
+ - Fix context crash by retaining necessary C objects
17
+
18
+ # 2022-05-20 v1.3.0.2.0
19
+
20
+ - Fix multibyte string handling
21
+ - Support JRuby
22
+
23
+ # 2022-04-29 v1.3.0.1.0
24
+
25
+ Promotion of v1.3.0.1.0.beta1 to stable
26
+
27
+ # 2022-04-25 v1.3.0.1.0.beta1
28
+
29
+ - Add obfuscator configuration
30
+ - Add nested object limit configuration
31
+ - Add report ruleset information
32
+
33
+ # 2022-04-29 v1.3.0.0.0
34
+
35
+ - Promote v1.3.0.0.0.beta1 to stable
36
+
37
+ # 2022-04-20 v1.3.0.0.0.beta1
38
+
39
+ - Update to libddwaf 1.3.0
40
+
41
+ # 2022-03-18 v1.2.1.0.0.beta1
42
+
43
+ - Update to libddwaf 1.2.1
44
+ - Fix incorrect types for a few binding functions
45
+
46
+ # 2022-03-04 v1.0.14.2.1.beta1
47
+
48
+ - Fix incorrect return code
49
+ - Fix passing nil in libddwaf object containers
50
+
51
+ # 2022-02-07 v1.0.14.2.0.beta1
52
+
53
+ - Change Datadog::Security to Datadog::AppSec
54
+
55
+ # 2022-02-01 v1.0.14.1.0.beta2
56
+
57
+ - Add support for Ruby 3.1
58
+
59
+ # 2021-12-14 v1.0.14.1.0.beta1
60
+
61
+ - Fix sequential runs on a single context by retaining C input data objects
62
+
63
+ # 2021-11-24 v1.0.14.0.0.beta1
64
+
65
+ - Update to libddwaf 1.0.14
66
+
67
+ # 2021-11-24 v1.0.13.0.0.beta1
68
+
69
+ - Add ruby platform fallback for unsupported platforms
70
+ - Update to libddwaf 1.0.13
71
+
72
+ # 2021-10-13 v1.0.12.0.0.beta1
73
+
74
+ - Initial release
data/Steepfile ADDED
@@ -0,0 +1,22 @@
1
+ # D = Steep::Diagnostic
2
+
3
+ target :lib do
4
+ signature "sig"
5
+
6
+ check "lib"
7
+ library "rubygems"
8
+ library "logger"
9
+ library "monitor" # needed by logger
10
+ library "json"
11
+
12
+ repo_path "vendor/rbs"
13
+ library "ffi"
14
+ library "jruby"
15
+ library "gem"
16
+
17
+ # # configure_code_diagnostics(D::Ruby.strict) # `strict` diagnostics setting
18
+ # # configure_code_diagnostics(D::Ruby.lenient) # `lenient` diagnostics setting
19
+ # # configure_code_diagnostics do |hash| # You can setup everything yourself
20
+ # # hash[D::Ruby::NoMethod] = :information
21
+ # # end
22
+ end
@@ -2,8 +2,8 @@ module Datadog
2
2
  module AppSec
3
3
  module WAF
4
4
  module VERSION
5
- BASE_STRING = '1.3.0'
6
- STRING = "#{BASE_STRING}.2.0"
5
+ BASE_STRING = '1.5.1'
6
+ STRING = "#{BASE_STRING}.0.0"
7
7
  MINIMUM_RUBY_VERSION = '2.1'
8
8
  end
9
9
  end