libddwaf 1.25.1.1.0-aarch64-linux → 1.30.0.0.1-aarch64-linux

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: b3e9c02d71220e266847b71a275e0839505cb3308451c3c25578204d558dbe77
4
- data.tar.gz: ed4de42699bfeb6e9e5c38848cd4d2f9ca0f75d19ce319676dbc37ae7f46b999
3
+ metadata.gz: '02594612a51764ecbe10e415981518b68d928835b504fcba490421973b0e1385'
4
+ data.tar.gz: 214f7da6173c96939c0a4ce7da4e1b9b699355c31bd1ecc1505d16c72c9ebb8b
5
5
  SHA512:
6
- metadata.gz: 13384d293c29094a3754551209fb6bb5e672d373e2400a32a434d6932b67e6b33f5e458360b06256512adbd96aa04b9afec8ae0c0690cbd481c12c1d886e01f6
7
- data.tar.gz: c0d9f32005fab0e3794f1e041cf9f8603cdd9d4e56a6b354a0cd37748ff0acebb39fdc73de1b92b9cb9f6744c16df35c6d0c5968d588186f34aadd0a3eead040
6
+ metadata.gz: 9a0194383210d47924469879e4f5c2b4cef81bc874dbe165a6d75f89545a94e9ac817817ca4fe7088871eb4b858256acfcec77859591d6693825542926db3a7e
7
+ data.tar.gz: 6e54c0473a6463fcb2ed395c08435fc1c7b60d08dc2d17a23327a622786cf4030297eb9a7f92e4493b71d52eff8de0b0a038191feeefffaa9c42a86e3bb65920
data/README.md CHANGED
@@ -3,9 +3,8 @@
3
3
  ``libddwaf-rb`` is library exposing the libddwaf C++ library to Ruby, packaging it in a multiplatform gem.
4
4
 
5
5
  For the libddwaf implementation, see this repository:
6
- - [``libddwaf``: libddwaf](https://github.com/DataDog/libddwaf.git)
7
-
8
6
 
7
+ - [``libddwaf``: libddwaf](https://github.com/DataDog/libddwaf.git)
9
8
 
10
9
  ## Rake tasks
11
10
 
@@ -80,6 +79,15 @@ docker run --privileged --rm tonistiigi/binfmt --install amd64
80
79
 
81
80
  Then you can substitute e.g `--platform linux/x86_64` with `--platform linux/aarch64` below.
82
81
 
82
+ ### Memory leak specs
83
+
84
+ ```
85
+ docker compose run libddwaf-rb bin/build-libddwaf
86
+ docker compose run libddwaf-rb bundle exec rake spec:memory_leaks:all
87
+ ```
88
+
89
+ `bin/build-libddwaf` builds libddwaf with debug headers so that Valgrind produces proper stack traces.
90
+
83
91
  ### GNU (Debian)
84
92
 
85
93
  ```
@@ -5,6 +5,9 @@ module Datadog
5
5
  module WAF
6
6
  # Module responsible for Ruby-to-C and C-to-Ruby conversions
7
7
  module Converter
8
+ INT64_MIN = -(2**63)
9
+ UINT64_MAX = 2**64 - 1
10
+
8
11
  module_function
9
12
 
10
13
  # standard:disable Metrics/MethodLength,Metrics/CyclomaticComplexity
@@ -101,9 +104,11 @@ module Datadog
101
104
  res = if coerce
102
105
  LibDDWAF.ddwaf_object_string(obj, val.to_s)
103
106
  elsif val < 0
104
- LibDDWAF.ddwaf_object_signed(obj, val)
107
+ clamped = val.clamp(INT64_MIN, -1) #: Integer
108
+ LibDDWAF.ddwaf_object_signed(obj, clamped)
105
109
  else
106
- LibDDWAF.ddwaf_object_unsigned(obj, val)
110
+ clamped = val.clamp(0, UINT64_MAX) #: Integer
111
+ LibDDWAF.ddwaf_object_unsigned(obj, clamped)
107
112
  end
108
113
  raise ConversionError, "Could not convert into object: #{val.inspect}" if res.null?
109
114
 
@@ -2,10 +2,10 @@ module Datadog
2
2
  module AppSec
3
3
  module WAF
4
4
  module VERSION
5
- BASE_STRING = "1.25.1"
5
+ BASE_STRING = "1.30.0"
6
6
  # NOTE: Every change to the `BASE_STRING` should be accompanied
7
7
  # by a reset of the patch version in the `STRING` below.
8
- STRING = "#{BASE_STRING}.1.0"
8
+ STRING = "#{BASE_STRING}.0.1"
9
9
  MINIMUM_RUBY_VERSION = "2.5"
10
10
  end
11
11
  end
@@ -38,7 +38,7 @@ module Datadog
38
38
  "highlight" => ::Array[::String]
39
39
  }
40
40
  type actions = ::Hash[::String, action]
41
- type action = ::Hash[::String, ::String]
41
+ type action = ::Hash[::String, ::String | ::Integer]
42
42
  type attributes = ::Hash[::String, opaque]
43
43
  type opaque = nil | bool | ::String | ::Integer | ::Float | ::Array[opaque] | ::Hash[::String, opaque]
44
44
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libddwaf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.25.1.1.0
4
+ version: 1.30.0.0.1
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Datadog, Inc.
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-09-24 00:00:00.000000000 Z
10
+ date: 2026-02-27 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: ffi
@@ -61,7 +60,7 @@ files:
61
60
  - sig/datadog/appsec/waf/result.rbs
62
61
  - sig/datadog/appsec/waf/version.rbs
63
62
  - sig/libddwaf.rbs
64
- - vendor/libddwaf/libddwaf-1.25.1-linux-aarch64/lib/libddwaf.so
63
+ - vendor/libddwaf/libddwaf-1.30.0-linux-aarch64/lib/libddwaf.so
65
64
  - vendor/rbs/gem/0/gem.rbs
66
65
  - vendor/rbs/jruby/0/jruby.rbs
67
66
  homepage: https://github.com/DataDog/libddwaf-rb
@@ -69,7 +68,6 @@ licenses:
69
68
  - BSD-3-Clause
70
69
  metadata:
71
70
  allowed_push_host: https://rubygems.org
72
- post_install_message:
73
71
  rdoc_options: []
74
72
  require_paths:
75
73
  - lib
@@ -84,8 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
82
  - !ruby/object:Gem::Version
85
83
  version: 2.0.0
86
84
  requirements: []
87
- rubygems_version: 3.5.21
88
- signing_key:
85
+ rubygems_version: 3.6.2
89
86
  specification_version: 4
90
87
  summary: Datadog WAF
91
88
  test_files: []