libddwaf 1.3.0.1.0 → 1.3.0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66b2243d31b8a1a8c104ed2183bc4d7f86cdf3797367bd22f9f10399fe0d4084
4
- data.tar.gz: c5536867034e0897a455dfe6a5e8df1fd5cd1ba85b55d0046398cad4f3e788e8
3
+ metadata.gz: 761413998bd5c350c78413a3b1ab14de9d7b31e5784e206d4a1e24747e84943b
4
+ data.tar.gz: 99f0a81a21c6e6cb78895422fc93345b2e466adc2977e97d0fb69f2ca7d4968c
5
5
  SHA512:
6
- metadata.gz: 00064331055d7d5a441cab41f3e0e8da97650fd52bcf3334f7a88579cee3d1d388715b31929c6307e7aec31c02fcb102b7e365e290d90e3ab598c3490d006bbb
7
- data.tar.gz: 51c25b3b55be9df332d59766444dd4839b2dc0fb99e6a9b985d9263400f611a4da7f4b7efe245132c3709182861d50fb64348010b1544b003e19ebb37ebb2c9b
6
+ metadata.gz: ef74395170939fb40cca96f4b93628987d980d579a05083cbf7e738e239be2bd61bfde3e3666e5a6227f57681bd3961a24d81f33140e463110f80c916b5311d0
7
+ data.tar.gz: 834f41db4de087c0dc8df8ba418c54ff5d530223e94a627f65f818482183678626a89dcdc07b91045b66ae0b8d75b6f6e6452ff9e5f535bad231625a7cb8b340
@@ -22,7 +22,7 @@ jobs:
22
22
  - name: Bundle
23
23
  run: |
24
24
  bundle install
25
- - name: Build package
25
+ - name: Build gem
26
26
  run: |
27
27
  bundle exec rake build
28
28
  - name: Upload gem
@@ -41,6 +41,21 @@ jobs:
41
41
  - os: ubuntu-20.04
42
42
  cpu: aarch64
43
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
53
+ - os: ubuntu-20.04
54
+ cpu: aarch64
55
+ platform: aarch64-linux-musl
56
+ - os: ubuntu-20.04
57
+ cpu: universal
58
+ platform: java
44
59
  - os: macos-10.15
45
60
  cpu: x86_64
46
61
  platform: x86_64-darwin
@@ -58,13 +73,7 @@ jobs:
58
73
  - name: Bundle
59
74
  run: |
60
75
  bundle install
61
- - name: Fetch binary library
62
- run: |
63
- bundle exec rake fetch[${{ matrix.platform }}]
64
- - name: Extract binary library
65
- run: |
66
- bundle exec rake extract[${{ matrix.platform }}]
67
- - name: Build package
76
+ - name: Build binary gem
68
77
  run: |
69
78
  bundle exec rake binary[${{ matrix.platform }}]
70
79
  - name: Upload gem
@@ -142,7 +151,37 @@ jobs:
142
151
  image: ruby:2.6-alpine
143
152
  qemu: aarch64
144
153
  libc: musl
145
- name: Test package (${{ matrix.platform }}-${{ matrix.libc }})
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
175
+ image: ruby:2.6-alpine
176
+ qemu: aarch64
177
+ libc: musl
178
+ - os: ubuntu-20.04
179
+ cpu: x86_64
180
+ platform: java
181
+ image: jruby:9.3.0.0
182
+ qemu: amd64
183
+ libc: gnu
184
+ name: Test package (${{ matrix.platform }}, ${{ matrix.libc }}, ${{ matrix.cpu }})
146
185
  runs-on: ${{ matrix.os }}
147
186
  steps:
148
187
  - name: Enable ${{ matrix.qemu }} platform
@@ -10,148 +10,148 @@ jobs:
10
10
  include:
11
11
  - os: ubuntu-20.04
12
12
  cpu: x86_64
13
- platform: x86_64-linux
13
+ platform: x86_64-linux-gnu
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
19
+ platform: aarch64-linux-gnu
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
25
+ platform: x86_64-linux-gnu
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
31
+ platform: aarch64-linux-gnu
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
37
+ platform: x86_64-linux-gnu
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
43
+ platform: aarch64-linux-gnu
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
49
+ platform: x86_64-linux-gnu
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
55
+ platform: aarch64-linux-gnu
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
61
+ platform: x86_64-linux-gnu
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
67
+ platform: x86_64-linux-gnu
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
73
+ platform: x86_64-linux-gnu
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
79
+ platform: x86_64-linux-gnu
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
85
+ platform: x86_64-linux-gnu
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
91
+ platform: x86_64-linux-musl
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
97
+ platform: aarch64-linux-musl
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
103
+ platform: x86_64-linux-musl
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
109
+ platform: aarch64-linux-musl
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
115
+ platform: x86_64-linux-musl
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
121
+ platform: aarch64-linux-musl
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
127
+ platform: x86_64-linux-musl
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
133
+ platform: aarch64-linux-musl
134
134
  image: ruby:2.6-alpine
135
135
  qemu: arm64
136
136
  libc: musl
137
137
  # TODO: jruby images have no sudo so apt-get can't get a lock
138
138
  # - os: ubuntu-20.04
139
139
  # cpu: x86_64
140
- # platform: x86_64-linux
141
- # image: jruby:9.3
140
+ # platform: x86_64-linux-gnu
141
+ # image: jruby:9.3.0.0
142
142
  # qemu: amd64
143
143
  # libc: gnu
144
144
  # - os: ubuntu-20.04
145
145
  # cpu: x86_64
146
- # platform: x86_64-linux
147
- # image: jruby:9.2
146
+ # platform: x86_64-linux-gnu
147
+ # image: jruby:9.2.8.0
148
148
  # qemu: amd64
149
149
  # libc: gnu
150
150
  # - os: ubuntu-20.04
151
151
  # cpu: x86_64
152
- # platform: x86_64-linux
153
- # image: jruby:9.1
154
- # qemu: amd64
152
+ # platform: aarch64-linux-gnu
153
+ # image: jruby:9.3.4.0
154
+ # qemu: arm64
155
155
  # libc: gnu
156
156
  name: Test (${{ matrix.image }}, ${{ matrix.cpu }})
157
157
  runs-on: ${{ matrix.os }}
data/README.md CHANGED
@@ -4,3 +4,121 @@
4
4
 
5
5
  For the libddwaf implementation, see this repository:
6
6
  - [``libddwaf``: libddwaf](https://github.com/DataDog/libddwaf.git)
7
+
8
+
9
+
10
+ ## Rake tasks
11
+
12
+ ### Outline
13
+
14
+ A typical workflow is as follows:
15
+
16
+ ```
17
+ rake fetch # fetch prebuilt libddwaf binaries tarball in vendor/libddwaf
18
+ rake extract # extract downloaded tarball in vendor/libddwaf
19
+ rake spec # run rspec
20
+ rake binary # build the gem
21
+ ```
22
+
23
+ Note that each depends on the previous one, but `fetch` and `extract` are lazy, which proves useful to produce manual builds.
24
+
25
+ ### Platform selection
26
+
27
+ By default the above will automatically use the local Ruby platform.
28
+
29
+ Since libddwaf binary builds are available upstream, it's possible to build gems for any platform on any other platform. To that end `fetch`, `extract`, and `binary` can take an argument to specify the Ruby platform for which these operations should apply:
30
+
31
+ ```
32
+ rake fetch[x86_64-linux-musl]
33
+ rake extract[x86_64-linux-musl]
34
+ rake binary[x86_64-linux-musl]
35
+ ```
36
+
37
+ Of course you can't force the platform for `rspec` since that requires running code; see the Docker section below for ways to achieve that.
38
+
39
+ Note that zsh gives special meaning to brackets, therefore you may need to quote the argument:
40
+
41
+ ```
42
+ rake 'fetch[x86_64-linux-musl]'
43
+ ```
44
+
45
+ Available platforms are:
46
+
47
+ ```
48
+ x86_64-linux-musl # Alpine build: targets musl-based Linux
49
+ x86_64-linux-gnu # Debian build: targets glibc-based Linux
50
+ x86_64-linux # Portable build: targets multiple linux libc
51
+ x86_64-darwin # Darwin build: targets macOS
52
+ aarch64-linux-musl # Same as above, for ARMv8
53
+ aarch64-linux-gnu # Same as above, for ARMv8
54
+ aarch64-linux # Same as above, for ARMv8
55
+ arm64-darwin # Same as above, for Apple Silicon
56
+ java # JRuby build, universal
57
+ ```
58
+
59
+ Note: since it is not (yet) possible to package gems for the `java` Ruby platform any other way than `java`, it has to package all the native architectures.
60
+
61
+ In addition, options can be specified for the portable build:
62
+
63
+ ```
64
+ rake binary[x86_64-linux:gnu+musl] # Combined build: combine musl and glibc builds, selecting one at runtime
65
+ rake binary[x86_64-linux:llvm] # Hybrid build: linked to llvm static libs and built against a musl sysroot
66
+ ```
67
+
68
+ See upstream libddwaf for details about the [hybrid portable build](https://github.com/DataDog/libddwaf/blob/master/docker/libddwaf/README.md).
69
+
70
+ ## Testing with Docker
71
+
72
+ Unless using Docker for Mac, remember to enable foreign CPU emulation via QEMU:
73
+
74
+ ```
75
+ # aarch64 on x86_64 hardware
76
+ docker run --privileged --rm tonistiigi/binfmt --install arm64
77
+ # x86_64 on aarch64 hardware
78
+ docker run --privileged --rm tonistiigi/binfmt --install amd64
79
+ ```
80
+
81
+ Then you can substitute e.g `--platform linux/x86_64` with `--platform linux/aarch64` below.
82
+
83
+ ### GNU (Debian)
84
+
85
+ ```
86
+ # this is too old for aarch64
87
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.1 sh -c 'rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
88
+ # these are fine for aarch64
89
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.2 sh -c 'rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
90
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.3 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
91
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.4 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
92
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.5 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
93
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.6 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
94
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.7 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
95
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.0 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
96
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.1 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
97
+ ```
98
+
99
+ ### musl (Alpine)
100
+
101
+ ```
102
+ # these are too old for aarch64
103
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.1-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
104
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.2-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
105
+ # these are fine for aarch64
106
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.3-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
107
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.4-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
108
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.5-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
109
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.6-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
110
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.7-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
111
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.0-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
112
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.1-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
113
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.1-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
114
+ ```
115
+
116
+ ### JRuby
117
+
118
+ ```
119
+ # these are too old for aarch64
120
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" jruby:9.2.8.0 sh -c 'apt-get update && apt-get install -y build-essential git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
121
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" jruby:9.3.0.0 sh -c 'apt-get update && apt-get install -y build-essential git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
122
+ # this is fine for aarch64
123
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" jruby:9.3.4.0 sh -c 'apt-get update && apt-get install -y build-essential git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
124
+ ```
@@ -3,7 +3,7 @@ module Datadog
3
3
  module WAF
4
4
  module VERSION
5
5
  BASE_STRING = '1.3.0'
6
- STRING = "#{BASE_STRING}.1.0"
6
+ STRING = "#{BASE_STRING}.2.0"
7
7
  MINIMUM_RUBY_VERSION = '2.1'
8
8
  end
9
9
  end
@@ -32,12 +32,22 @@ module Datadog
32
32
  Gem::Platform.local.os
33
33
  end
34
34
 
35
+ def self.local_version
36
+ return nil unless local_os == 'linux'
37
+
38
+ # Old rubygems don't handle non-gnu linux correctly
39
+ return $1 if RUBY_PLATFORM =~ /linux-(.+)$/
40
+
41
+ 'gnu'
42
+ end
43
+
35
44
  def self.local_cpu
36
45
  if RUBY_ENGINE == 'jruby'
37
46
  os_arch = java.lang.System.get_property('os.arch')
38
47
 
39
48
  cpu = case os_arch
40
49
  when 'amd64' then 'x86_64'
50
+ when 'aarch64' then 'aarch64'
41
51
  else raise Error, "unsupported JRuby os.arch: #{os_arch.inspect}"
42
52
  end
43
53
 
@@ -47,12 +57,28 @@ module Datadog
47
57
  Gem::Platform.local.cpu
48
58
  end
49
59
 
60
+ def self.vendor_dir
61
+ File.join(__dir__, '../../../vendor')
62
+ end
63
+
64
+ def self.libddwaf_vendor_dir
65
+ File.join(vendor_dir, 'libddwaf')
66
+ end
67
+
68
+ def self.shared_lib_triplet
69
+ local_version ? "#{local_os}-#{local_version}-#{local_cpu}" : "#{local_os}-#{local_cpu}"
70
+ end
71
+
72
+ def self.libddwaf_dir
73
+ File.join(libddwaf_vendor_dir, "libddwaf-#{Datadog::AppSec::WAF::VERSION::BASE_STRING}-#{shared_lib_triplet}")
74
+ end
75
+
50
76
  def self.shared_lib_extname
51
77
  Gem::Platform.local.os == 'darwin' ? '.dylib' : '.so'
52
78
  end
53
79
 
54
80
  def self.shared_lib_path
55
- File.join(__dir__, "../../../vendor/libddwaf/libddwaf-#{Datadog::AppSec::WAF::VERSION::BASE_STRING}-#{local_os}-#{local_cpu}/lib/libddwaf#{shared_lib_extname}")
81
+ File.join(libddwaf_dir, 'lib', "libddwaf#{shared_lib_extname}")
56
82
  end
57
83
 
58
84
  ffi_lib [shared_lib_path]
@@ -265,7 +291,7 @@ module Datadog
265
291
  end
266
292
 
267
293
  val.each do |k, v|
268
- res = LibDDWAF.ddwaf_object_map_addl(obj, k.to_s, k.to_s.size, ruby_to_object(v))
294
+ res = LibDDWAF.ddwaf_object_map_addl(obj, k.to_s, k.to_s.bytesize, ruby_to_object(v))
269
295
  unless res
270
296
  fail LibDDWAF::Error, "Could not add to map object: #{k.inspect} => #{v.inspect}"
271
297
  end
@@ -274,7 +300,7 @@ module Datadog
274
300
  obj
275
301
  when String
276
302
  obj = LibDDWAF::Object.new
277
- res = LibDDWAF.ddwaf_object_stringl(obj, val, val.size)
303
+ res = LibDDWAF.ddwaf_object_stringl(obj, val, val.bytesize)
278
304
  if res.null?
279
305
  fail LibDDWAF::Error, "Could not convert into object: #{val}"
280
306
  end
@@ -282,7 +308,8 @@ module Datadog
282
308
  obj
283
309
  when Symbol
284
310
  obj = LibDDWAF::Object.new
285
- res = LibDDWAF.ddwaf_object_stringl(obj, val.to_s, val.size)
311
+ str = val.to_s
312
+ res = LibDDWAF.ddwaf_object_stringl(obj, str, str.bytesize)
286
313
  if res.null?
287
314
  fail LibDDWAF::Error, "Could not convert into object: #{val}"
288
315
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libddwaf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0.1.0
4
+ version: 1.3.0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-29 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi