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

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: 43df61b8d223e6182569aad686ce212dd8cb23949571d04927cbf80b20723877
4
- data.tar.gz: 49f761b0f65ecbfeb591113f60b26e9cfebea35379c74dba41d6ea267c70c8f7
3
+ metadata.gz: 700b20e917e6f02ec85f4fec814e462bd4217e93e762654018bfcc3de29c277d
4
+ data.tar.gz: 776889413935922f161e92097b1785d9e2ae69467817c1c212339a3aad0031a4
5
5
  SHA512:
6
- metadata.gz: 9dedccbbb3886b25fb22b547a9c48888f849f73932000777863a008c9369e92b5caf554d00a4ee7f28e373ff97ce34effa4b94390d9ef3fa8e906cb6e174d24d
7
- data.tar.gz: 1efc7978f793e516e65eee2cbb43e3bc8657f45e101a8e70d8afd42a82fc3b733804bb498b486d81a496b00de3aecfd464d643c2a784e3ddb37f19812cd4360e
6
+ metadata.gz: d7313b67653fa744017923219e5e5b1b3263bb15e407ed11a512b47f0e2e11064f2da9af31eed97385afdcbd69ccc1e52858262138a37983529edb7cfc324780
7
+ data.tar.gz: b43ad9e1d54b9dc1ca4b476fe198a281a4cbeb360cf5d1b2fa36c92286f5fffdf29a43a52d35d5db32074ba331646bbd1efc379b5e860971b8e795c0bf4f1229
@@ -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: arm64-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