libddwaf 1.7.0.0.0-aarch64-linux → 1.8.2.0.0-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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb7937e1315eaa2f2f7133a0278fe8284aa3862566b6b58597a3e42d5700ead5
|
4
|
+
data.tar.gz: f65955292f406d2bd62a4b67f6482b81ab2b6c86d72fdad8942ef08fec0dd9fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2e83f6faad45458d9ea6812b7151760d19e6916415823b2f365c74345754d6f61c3d53c7549fd89e6eddac4e8170cf6221aaea0dc70c07680c040a44c8e839d
|
7
|
+
data.tar.gz: 1d4cea5c6f7beebee36fbf32340ed85c91b1b9d28051b61fa56479fc0e34822cd5206b4e5d3e0bfe9034b85d7f12580c1eb02012feee328fc9b997c03aabc1b6
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# 2023-03-03 v1.8.2.0.0
|
2
|
+
|
3
|
+
- Update to libddwaf 1.8.2
|
4
|
+
- Added Waf::Handle#merge method
|
5
|
+
- Remove Waf::Handle#update_rule_data and Waf::Handle#toggle_rules methods
|
6
|
+
- Remove WAF::LibDDWAF.ddwaf_required_rule_data_ids method
|
7
|
+
|
1
8
|
# 2023-02-03 v1.7.0.0.0
|
2
9
|
|
3
10
|
- Update to libddwaf 1.7.0
|
data/lib/datadog/appsec/waf.rb
CHANGED
@@ -228,10 +228,10 @@ module Datadog
|
|
228
228
|
attach_function :ddwaf_ruleset_info_free, [:ddwaf_ruleset_info], :void
|
229
229
|
|
230
230
|
attach_function :ddwaf_init, [:ddwaf_rule, :ddwaf_config, :ddwaf_ruleset_info], :ddwaf_handle
|
231
|
+
attach_function :ddwaf_update, [:ddwaf_handle, :ddwaf_object, :ddwaf_ruleset_info], :ddwaf_handle
|
231
232
|
attach_function :ddwaf_destroy, [:ddwaf_handle], :void
|
232
233
|
|
233
234
|
attach_function :ddwaf_required_addresses, [:ddwaf_handle, UInt32Ptr], :charptrptr
|
234
|
-
attach_function :ddwaf_required_rule_data_ids, [:ddwaf_handle, UInt32Ptr], :charptrptr
|
235
235
|
|
236
236
|
# updating
|
237
237
|
|
@@ -242,9 +242,6 @@ module Datadog
|
|
242
242
|
:ddwaf_match, 1
|
243
243
|
typedef DDWAF_RET_CODE, :ddwaf_ret_code
|
244
244
|
|
245
|
-
attach_function :ddwaf_update_rule_data, [:ddwaf_handle, :ddwaf_object], :ddwaf_ret_code
|
246
|
-
attach_function :ddwaf_toggle_rules, [:ddwaf_handle, :ddwaf_object], :ddwaf_ret_code
|
247
|
-
|
248
245
|
# running
|
249
246
|
|
250
247
|
typedef :pointer, :ddwaf_context
|
@@ -478,9 +475,7 @@ module Datadog
|
|
478
475
|
}
|
479
476
|
|
480
477
|
class Handle
|
481
|
-
attr_reader :handle_obj
|
482
|
-
|
483
|
-
attr_reader :ruleset_info
|
478
|
+
attr_reader :handle_obj, :ruleset_info, :config
|
484
479
|
|
485
480
|
def initialize(rule, limits: {}, obfuscator: {})
|
486
481
|
rule_obj = Datadog::AppSec::WAF.ruby_to_object(rule)
|
@@ -492,7 +487,6 @@ module Datadog
|
|
492
487
|
if config_obj.null?
|
493
488
|
fail LibDDWAF::Error, 'Could not create config struct'
|
494
489
|
end
|
495
|
-
retain(config_obj)
|
496
490
|
|
497
491
|
config_obj[:limits][:max_container_size] = limits[:max_container_size] || LibDDWAF::DEFAULT_MAX_CONTAINER_SIZE
|
498
492
|
config_obj[:limits][:max_container_depth] = limits[:max_container_depth] || LibDDWAF::DEFAULT_MAX_CONTAINER_DEPTH
|
@@ -501,6 +495,8 @@ module Datadog
|
|
501
495
|
config_obj[:obfuscator][:value_regex] = FFI::MemoryPointer.from_string(obfuscator[:value_regex]) if obfuscator[:value_regex]
|
502
496
|
config_obj[:free_fn] = Datadog::AppSec::WAF::LibDDWAF::ObjectNoFree
|
503
497
|
|
498
|
+
@config = config_obj
|
499
|
+
|
504
500
|
ruleset_info = LibDDWAF::RuleSetInfo.new
|
505
501
|
|
506
502
|
@handle_obj = Datadog::AppSec::WAF::LibDDWAF.ddwaf_init(rule_obj, config_obj, ruleset_info)
|
@@ -539,26 +535,35 @@ module Datadog
|
|
539
535
|
list.get_array_of_string(0, count[:value])
|
540
536
|
end
|
541
537
|
|
542
|
-
def
|
538
|
+
def merge(data)
|
543
539
|
data_obj = Datadog::AppSec::WAF.ruby_to_object(data, coerce: false)
|
544
|
-
|
540
|
+
ruleset_info = LibDDWAF::RuleSetInfo.new
|
541
|
+
new_handle = Datadog::AppSec::WAF::LibDDWAF.ddwaf_update(handle_obj, data_obj, ruleset_info)
|
545
542
|
|
546
|
-
|
543
|
+
return if new_handle.null?
|
544
|
+
|
545
|
+
info = {
|
546
|
+
loaded: ruleset_info[:loaded],
|
547
|
+
failed: ruleset_info[:failed],
|
548
|
+
errors: WAF.object_to_ruby(ruleset_info[:errors]),
|
549
|
+
version: ruleset_info[:version],
|
550
|
+
}
|
551
|
+
new_from_handle(new_handle, info, config)
|
547
552
|
ensure
|
548
553
|
Datadog::AppSec::WAF::LibDDWAF.ddwaf_object_free(data_obj) if data_obj
|
554
|
+
Datadog::AppSec::WAF::LibDDWAF.ddwaf_ruleset_info_free(ruleset_info) if ruleset_info
|
549
555
|
end
|
550
556
|
|
551
|
-
|
552
|
-
map_obj = Datadog::AppSec::WAF.ruby_to_object(map, coerce: false)
|
553
|
-
res = Datadog::AppSec::WAF::LibDDWAF.ddwaf_toggle_rules(@handle_obj, map_obj)
|
557
|
+
private
|
554
558
|
|
555
|
-
|
556
|
-
|
557
|
-
|
559
|
+
def new_from_handle(handle_object, info, config)
|
560
|
+
obj = self.class.allocate
|
561
|
+
obj.instance_variable_set(:@handle_obj, handle_object)
|
562
|
+
obj.instance_variable_set(:@ruleset_info, info)
|
563
|
+
obj.instance_variable_set(:@config, config)
|
564
|
+
obj
|
558
565
|
end
|
559
566
|
|
560
|
-
private
|
561
|
-
|
562
567
|
def validate!
|
563
568
|
@valid = true
|
564
569
|
end
|
@@ -576,18 +581,6 @@ module Datadog
|
|
576
581
|
|
577
582
|
fail LibDDWAF::Error, "Attempt to use an invalid instance: #{inspect}"
|
578
583
|
end
|
579
|
-
|
580
|
-
def retained
|
581
|
-
@retained ||= []
|
582
|
-
end
|
583
|
-
|
584
|
-
def retain(object)
|
585
|
-
retained << object
|
586
|
-
end
|
587
|
-
|
588
|
-
def release(object)
|
589
|
-
retained.delete(object)
|
590
|
-
end
|
591
584
|
end
|
592
585
|
|
593
586
|
class Result
|
data/vendor/libddwaf/{libddwaf-1.7.0-linux-aarch64 → libddwaf-1.8.2-linux-aarch64}/lib/libddwaf.so
RENAMED
Binary file
|
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.
|
4
|
+
version: 1.8.2.0.0
|
5
5
|
platform: aarch64-linux
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -42,7 +42,7 @@ files:
|
|
42
42
|
- lib/datadog/appsec/waf.rb
|
43
43
|
- lib/datadog/appsec/waf/version.rb
|
44
44
|
- lib/libddwaf.rb
|
45
|
-
- vendor/libddwaf/libddwaf-1.
|
45
|
+
- vendor/libddwaf/libddwaf-1.8.2-linux-aarch64/lib/libddwaf.so
|
46
46
|
homepage: https://github.com/DataDog/libddwaf-rb
|
47
47
|
licenses:
|
48
48
|
- BSD-3-Clause
|