semian 0.20.0 → 0.20.1

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: bd8decd384592d21ffffd5d5300099c9bf7a0971e7a385fb84288bd2661fa165
4
- data.tar.gz: 3cd2627d985a29ab04a8b28f27bd0f12756f182a6919b86f5ae1821751f3ccf5
3
+ metadata.gz: bf43c5c57553b9262a1c1c4ef782fe92483480c1793604c9d0c7b328b907de53
4
+ data.tar.gz: c8d73c47247f10cdac57053356f61e65bdb5f38c134b2122f030e42dc175b26d
5
5
  SHA512:
6
- metadata.gz: f14a28ea47bf2ffd290ae0d01535361a5a13e3f85debcad18c0801c367a13dc3bbc0e23280bf339c9c9cd098ec7a0d03eaf3c853d11c57911d2fe561750112f2
7
- data.tar.gz: fbde9d094a74317531b55df4075b63b9cc69337a44fdf6212f8ca2c350c2d2084b3b6a8b4cc0762b70ae4ac574fbd0b0c13decd378f191394b07fb6553fb0293
6
+ metadata.gz: e6c96130e5c56f963e7ab63f1d561c843a8d3ff93593981bfe819d034dcf3c3e88a4a3a00b35c8779b8529629ea8fa29cd06e73acec0233ec1b909bd32184057
7
+ data.tar.gz: 589794eedc49e355705f82271743346a289f10aba2089d80a89a9eade0fa4a221d5476142e3c20aee3a501139ceb6c82217bed378842e6f91cc6f5cb54fc5636
@@ -91,11 +91,7 @@ module Semian
91
91
  end
92
92
 
93
93
  # TODO: share this with Mysql2
94
- QUERY_ALLOWLIST = Regexp.union(
95
- %r{\A(?:/\*.*?\*/)?\s*ROLLBACK}i,
96
- %r{\A(?:/\*.*?\*/)?\s*COMMIT}i,
97
- %r{\A(?:/\*.*?\*/)?\s*RELEASE\s+SAVEPOINT}i,
98
- )
94
+ QUERY_ALLOWLIST = %r{\A(?:/\*.*?\*/)?\s*(ROLLBACK|COMMIT|RELEASE\s+SAVEPOINT)}i
99
95
 
100
96
  def query_allowlisted?(sql, *)
101
97
  QUERY_ALLOWLIST.match?(sql)
data/lib/semian/mysql2.rb CHANGED
@@ -37,11 +37,7 @@ module Semian
37
37
  DEFAULT_HOST = "localhost"
38
38
  DEFAULT_PORT = 3306
39
39
 
40
- QUERY_WHITELIST = Regexp.union(
41
- %r{\A(?:/\*.*?\*/)?\s*ROLLBACK}i,
42
- %r{\A(?:/\*.*?\*/)?\s*COMMIT}i,
43
- %r{\A(?:/\*.*?\*/)?\s*RELEASE\s+SAVEPOINT}i,
44
- )
40
+ QUERY_ALLOWLIST = %r{\A(?:/\*.*?\*/)?\s*(ROLLBACK|COMMIT|RELEASE\s+SAVEPOINT)}i
45
41
 
46
42
  class << self
47
43
  # The naked methods are exposed as `raw_query` and `raw_connect` for instrumentation purpose
@@ -114,7 +110,7 @@ module Semian
114
110
  end
115
111
 
116
112
  def query_whitelisted?(sql, *)
117
- QUERY_WHITELIST =~ sql
113
+ QUERY_ALLOWLIST =~ sql
118
114
  rescue ArgumentError
119
115
  # The above regexp match can fail if the input SQL string contains binary
120
116
  # data that is not recognized as a valid encoding, in which case we just
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Semian
4
- VERSION = "0.20.0"
4
+ VERSION = "0.20.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Francis
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-10-26 00:00:00.000000000 Z
13
+ date: 2023-10-27 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: |2
16
16
  A Ruby C extention that is used to control access to shared resources