libddwaf 1.0.14.0.0.beta1-x86_64-darwin → 1.0.14.1.0.beta1-x86_64-darwin

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: 0ac603c550b610fa7b35642d642ad4d77d912983322383b059f42c5b94b41340
4
- data.tar.gz: 19fd7ba4cb3b05a308e8d854db6c967410a7fc69a4100a0b7b9b245a475972bf
3
+ metadata.gz: bc825858a2475f45c780d5a69514f25e393b99fb69b824e10ce7398043090312
4
+ data.tar.gz: e238f22260ddcede68dc562dfe8b44f42558b85d8ab179d087ce074a3f952740
5
5
  SHA512:
6
- metadata.gz: 486fda142c1fc18970c28f0b6f137fe336f7e6e69eb36f14b8ad436d07e965d31fa569d93f5dbab327021e392f2c44c4ef2fd5bababc73ada55634a326eae913
7
- data.tar.gz: 4564060ffc0fdefd357a8ddcb5ff7a0d07fe0a2a24b35c5eefa286fc0b9a10301f3f27e2e909ab152bb68afff6cc54ac04ca80284d9f187be6f52e0e1f75d7fe
6
+ metadata.gz: f54521687468249efa2a3096409f01eff5012e4ce478b0b33e99e9b1bfe491af55d1ab878ea6f40c689990695c4456f770d163fdf130bd5ea23d4b87a9662dba
7
+ data.tar.gz: e78a11ee06eaff2b5d98810ad984480d83e34eae2307b308f8d719315ce0a2fcdaa1fff9126dcb97ebb81cd65069262892388f443fed72e64fc79bf493a27969
@@ -3,7 +3,7 @@ module Datadog
3
3
  module WAF
4
4
  module VERSION
5
5
  BASE_STRING = '1.0.14'
6
- STRING = "#{BASE_STRING}.0.0.beta1"
6
+ STRING = "#{BASE_STRING}.1.0.beta1"
7
7
  MINIMUM_RUBY_VERSION = '2.1'
8
8
  MAXIMUM_RUBY_VERSION = '3.2'
9
9
  end
@@ -15,10 +15,10 @@ module Datadog
15
15
  os_name = java.lang.System.get_property('os.name')
16
16
 
17
17
  os = case os_name
18
- when /linux/i then 'linux'
19
- when /mac/i then 'darwin'
20
- else raise Error, "unsupported JRuby os.name: #{os_name.inspect}"
21
- end
18
+ when /linux/i then 'linux'
19
+ when /mac/i then 'darwin'
20
+ else raise Error, "unsupported JRuby os.name: #{os_name.inspect}"
21
+ end
22
22
 
23
23
  return os
24
24
  end
@@ -55,8 +55,8 @@ module Datadog
55
55
 
56
56
  class Version < ::FFI::Struct
57
57
  layout :major, :uint16,
58
- :minor, :uint16,
59
- :patch, :uint16
58
+ :minor, :uint16,
59
+ :patch, :uint16
60
60
  end
61
61
 
62
62
  typedef Version.by_ref, :ddwaf_version
@@ -76,17 +76,17 @@ module Datadog
76
76
 
77
77
  class ObjectValueUnion < ::FFI::Union
78
78
  layout :stringValue, :charptr,
79
- :uintValue, :uint64,
80
- :intValue, :int64,
81
- :array, :pointer
79
+ :uintValue, :uint64,
80
+ :intValue, :int64,
81
+ :array, :pointer
82
82
  end
83
83
 
84
84
  class Object < ::FFI::Struct
85
85
  layout :parameterName, :charptr,
86
- :parameterNameLength, :uint64,
87
- :valueUnion, ObjectValueUnion,
88
- :nbEntries, :uint64,
89
- :type, DDWAF_OBJ_TYPE
86
+ :parameterNameLength, :uint64,
87
+ :valueUnion, ObjectValueUnion,
88
+ :nbEntries, :uint64,
89
+ :type, DDWAF_OBJ_TYPE
90
90
  end
91
91
 
92
92
  typedef Object.by_ref, :ddwaf_object
@@ -118,8 +118,8 @@ module Datadog
118
118
 
119
119
  class Config < ::FFI::Struct
120
120
  layout :maxArrayLength, :uint64,
121
- :maxMapDepth, :uint64,
122
- :maxTimeStore, :uint64
121
+ :maxMapDepth, :uint64,
122
+ :maxTimeStore, :uint64
123
123
  end
124
124
 
125
125
  typedef Config.by_ref, :ddwaf_config
@@ -136,7 +136,6 @@ module Datadog
136
136
  attach_function :ddwaf_context_init, [:ddwaf_handle, :ddwaf_object_free_fn], :ddwaf_context
137
137
  attach_function :ddwaf_context_destroy, [:ddwaf_context], :void
138
138
 
139
-
140
139
  DDWAF_RET_CODE = enum :ddwaf_err_internal, -4,
141
140
  :ddwaf_err_invalid_object, -3,
142
141
  :ddwaf_err_invalid_argument, -2,
@@ -147,9 +146,9 @@ module Datadog
147
146
 
148
147
  class Result < ::FFI::Struct
149
148
  layout :action, DDWAF_RET_CODE,
150
- :data, :string,
151
- :perfData, :string,
152
- :perfTotalRuntime, :uint32 # in us
149
+ :data, :string,
150
+ :perfData, :string,
151
+ :perfTotalRuntime, :uint32 # in us
153
152
  end
154
153
 
155
154
  typedef Result.by_ref, :ddwaf_result
@@ -161,11 +160,11 @@ module Datadog
161
160
  # logging
162
161
 
163
162
  DDWAF_LOG_LEVEL = enum :ddwaf_log_trace,
164
- :ddwaf_log_debug,
165
- :ddwaf_log_info,
166
- :ddwaf_log_warn,
167
- :ddwaf_log_error,
168
- :ddwaf_log_off
163
+ :ddwaf_log_debug,
164
+ :ddwaf_log_info,
165
+ :ddwaf_log_warn,
166
+ :ddwaf_log_error,
167
+ :ddwaf_log_off
169
168
 
170
169
  callback :ddwaf_log_cb, [DDWAF_LOG_LEVEL, :string, :string, :uint, :charptr, :uint64], :void
171
170
 
@@ -351,11 +350,16 @@ module Datadog
351
350
  fail LibDDWAF::Error, 'Could not create context'
352
351
  end
353
352
 
354
- ObjectSpace.define_finalizer(self, Context.finalizer(context_obj))
353
+ @input_objs = []
354
+
355
+ ObjectSpace.define_finalizer(self, Context.finalizer(context_obj, @input_objs))
355
356
  end
356
357
 
357
- def self.finalizer(context_obj)
358
+ def self.finalizer(context_obj, input_objs)
358
359
  proc do |object_id|
360
+ input_objs.each do |input_obj|
361
+ Datadog::Security::WAF::LibDDWAF.ddwaf_object_free(input_obj)
362
+ end
359
363
  Datadog::Security::WAF::LibDDWAF.ddwaf_context_destroy(context_obj)
360
364
  end
361
365
  end
@@ -382,6 +386,9 @@ module Datadog
382
386
  fail LibDDWAF::Error, "Could not create result object"
383
387
  end
384
388
 
389
+ # retain C objects in memory for subsequent calls to run
390
+ @input_objs << input_obj
391
+
385
392
  code = Datadog::Security::WAF::LibDDWAF.ddwaf_run(@context_obj, input_obj, result_obj, timeout)
386
393
 
387
394
  result = Result.new(
@@ -393,7 +400,6 @@ module Datadog
393
400
 
394
401
  [ACTION_MAP_OUT[code], result]
395
402
  ensure
396
- Datadog::Security::WAF::LibDDWAF.ddwaf_object_free(input_obj) if input_obj
397
403
  Datadog::Security::WAF::LibDDWAF.ddwaf_result_free(result_obj) if result_obj
398
404
  end
399
405
  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.0.14.0.0.beta1
4
+ version: 1.0.14.1.0.beta1
5
5
  platform: x86_64-darwin
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-23 00:00:00.000000000 Z
11
+ date: 2021-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
66
  - !ruby/object:Gem::Version
67
67
  version: 2.0.0
68
68
  requirements: []
69
- rubygems_version: 3.2.31
69
+ rubygems_version: 3.2.33
70
70
  signing_key:
71
71
  specification_version: 4
72
72
  summary: Datadog WAF