Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-globalid for 
openSUSE:Factory checked in at 2023-01-29 14:11:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-globalid (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-globalid.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-globalid"

Sun Jan 29 14:11:23 2023 rev:10 rq:1061856 version:1.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-globalid/rubygem-globalid.changes        
2021-12-25 20:17:10.965275833 +0100
+++ 
/work/SRC/openSUSE:Factory/.rubygem-globalid.new.32243/rubygem-globalid.changes 
    2023-01-29 14:17:07.937101731 +0100
@@ -1,0 +2,16 @@
+Fri Jan 27 09:27:44 UTC 2023 - pgaj...@suse.com
+
+- version update to 1.1.0
+  * URI::GID: Update #check_scheme, no need to call super by @alexcwatt in #146
+  * JSON-encode GlobalIDs as strings by @georgeclaghorn in #149
+  * Support pattern matching of GlobalID & GlobalID::URI by @ojab in #140
+  * prevent double find by @ooooooo-q in #148
+  * implement non signed global_id helper method on fixture set by 
@rainerborene in #144
+
+-------------------------------------------------------------------
+Mon Jan 23 23:46:01 UTC 2023 - Marcus Rueckert <mrueck...@suse.de>
+
+- update to 1.0.1
+  Fix ReDoS vulnerability in name parsing (CVE-2023-22799 [bsc#1207587])
+
+-------------------------------------------------------------------

Old:
----
  globalid-1.0.0.gem

New:
----
  globalid-1.1.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-globalid.spec ++++++
--- /var/tmp/diff_new_pack.wzTQeX/_old  2023-01-29 14:17:08.353103777 +0100
+++ /var/tmp/diff_new_pack.wzTQeX/_new  2023-01-29 14:17:08.357103797 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-globalid
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-globalid
-Version:        1.0.0
+Version:        1.1.0
 Release:        0
 %define mod_name globalid
 %define mod_full_name %{mod_name}-%{version}

++++++ globalid-1.0.0.gem -> globalid-1.1.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/MIT-LICENSE new/MIT-LICENSE
--- old/MIT-LICENSE     2021-11-26 00:16:26.000000000 +0100
+++ new/MIT-LICENSE     2023-01-25 19:47:17.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2014-2016 David Heinemeier Hansson
+Copyright (c) 2014-2023 David Heinemeier Hansson
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
@@ -18,4 +18,3 @@
 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/fixture_set.rb 
new/lib/global_id/fixture_set.rb
--- old/lib/global_id/fixture_set.rb    2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id/fixture_set.rb    2023-01-25 19:47:17.000000000 +0100
@@ -2,12 +2,20 @@
 
 class GlobalID
   module FixtureSet
-    def signed_global_id(fixture_set_name, label, column_type: :integer, 
**options)
-      identifier = identify(label, column_type)
-      model_name = default_fixture_model_name(fixture_set_name)
-      uri = URI::GID.build([GlobalID.app, model_name, identifier, {}])
+    def global_id(fixture_set_name, label, column_type: :integer, **options)
+      create_global_id(fixture_set_name, label, column_type: column_type, 
klass: GlobalID, **options)
+    end
 
-      SignedGlobalID.new(uri, **options)
+    def signed_global_id(fixture_set_name, label, column_type: :integer, 
**options)
+      create_global_id(fixture_set_name, label, column_type: column_type, 
klass: SignedGlobalID, **options)
     end
+
+    private
+      def create_global_id(fixture_set_name, label, klass:, column_type: 
:integer, **options)
+        identifier = identify(label, column_type)
+        model_name = default_fixture_model_name(fixture_set_name)
+        uri = URI::GID.build([GlobalID.app, model_name, identifier, {}])
+        klass.new(uri, **options)
+      end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/global_id.rb 
new/lib/global_id/global_id.rb
--- old/lib/global_id/global_id.rb      2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id/global_id.rb      2023-01-25 19:47:17.000000000 +0100
@@ -1,4 +1,3 @@
-require 'active_support'
 require 'active_support/core_ext/string/inflections'  # For #model_class 
constantize
 require 'active_support/core_ext/array/access'
 require 'active_support/core_ext/object/try'          # For #find
@@ -35,18 +34,12 @@
 
     private
       def parse_encoded_gid(gid, options)
-        new(Base64.urlsafe_decode64(repad_gid(gid)), options) rescue nil
-      end
-
-      # We removed the base64 padding character = during #to_param, now we're 
adding it back so decoding will work
-      def repad_gid(gid)
-        padding_chars = gid.length.modulo(4).zero? ? 0 : (4 - 
gid.length.modulo(4))
-        gid + ('=' * padding_chars)
+        new(Base64.urlsafe_decode64(gid), options) rescue nil
       end
   end
 
   attr_reader :uri
-  delegate :app, :model_name, :model_id, :params, :to_s, to: :uri
+  delegate :app, :model_name, :model_id, :params, :to_s, :deconstruct_keys, 
to: :uri
 
   def initialize(gid, options = {})
     @uri = gid.is_a?(URI::GID) ? gid : URI::GID.parse(gid)
@@ -57,7 +50,13 @@
   end
 
   def model_class
-    model_name.constantize
+    model = model_name.constantize
+
+    unless model <= GlobalID
+      model
+    else
+      raise ArgumentError, "GlobalID and SignedGlobalID cannot be used as 
model_class."
+    end
   end
 
   def ==(other)
@@ -70,7 +69,10 @@
   end
 
   def to_param
-    # remove the = padding character for a prettier param -- it'll be added 
back in parse_encoded_gid
-    Base64.urlsafe_encode64(to_s).sub(/=+$/, '')
+    Base64.urlsafe_encode64(to_s, padding: false)
+  end
+
+  def as_json(*)
+    to_s
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/locator.rb new/lib/global_id/locator.rb
--- old/lib/global_id/locator.rb        2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id/locator.rb        2023-01-25 19:47:17.000000000 +0100
@@ -1,4 +1,3 @@
-require 'active_support'
 require 'active_support/core_ext/enumerable' # For Enumerable#index_by
 
 class GlobalID
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/railtie.rb new/lib/global_id/railtie.rb
--- old/lib/global_id/railtie.rb        2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id/railtie.rb        2023-01-25 19:47:17.000000000 +0100
@@ -3,7 +3,6 @@
 rescue LoadError
 else
 require 'global_id'
-require 'active_support'
 require 'active_support/core_ext/string/inflections'
 require 'active_support/core_ext/integer/time'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/signed_global_id.rb 
new/lib/global_id/signed_global_id.rb
--- old/lib/global_id/signed_global_id.rb       2021-11-26 00:16:26.000000000 
+0100
+++ new/lib/global_id/signed_global_id.rb       2023-01-25 19:47:17.000000000 
+0100
@@ -1,4 +1,3 @@
-require 'global_id'
 require 'active_support/message_verifier'
 require 'time'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/uri/gid.rb new/lib/global_id/uri/gid.rb
--- old/lib/global_id/uri/gid.rb        2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id/uri/gid.rb        2023-01-25 19:47:17.000000000 +0100
@@ -98,6 +98,10 @@
       "gid://#{app}#{path}#{'?' + query if query}"
     end
 
+    def deconstruct_keys(_keys)
+      {app: app, model_name: model_name, model_id: model_id, params: params}
+    end
+
     protected
       def set_path(path)
         set_model_components(path) unless defined?(@model_name) && @model_id
@@ -123,9 +127,6 @@
     private
       COMPONENT = [ :scheme, :app, :model_name, :model_id, :params ].freeze
 
-      # Extracts model_name and model_id from the URI path.
-      PATH_REGEXP = %r(\A/([^/]+)/?([^/]+)?\z)
-
       def check_host(host)
         validate_component(host)
         super
@@ -138,18 +139,18 @@
 
       def check_scheme(scheme)
         if scheme == 'gid'
-          super
+          true
         else
           raise URI::BadURIError, "Not a gid:// URI scheme: #{inspect}"
         end
       end
 
       def set_model_components(path, validate = false)
-        _, model_name, model_id = path.match(PATH_REGEXP).to_a
-        model_id = CGI.unescape(model_id) if model_id
-
+        _, model_name, model_id = path.split('/', 3)
         validate_component(model_name) && validate_model_id(model_id, 
model_name) if validate
 
+        model_id = CGI.unescape(model_id) if model_id
+
         @model_name = model_name
         @model_id = model_id
       end
@@ -162,7 +163,7 @@
       end
 
       def validate_model_id(model_id, model_name)
-        return model_id unless model_id.blank?
+        return model_id unless model_id.blank? || model_id.include?('/')
 
         raise MissingModelIdError, "Unable to create a Global ID for " \
           "#{model_name} without a model id."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id/verifier.rb 
new/lib/global_id/verifier.rb
--- old/lib/global_id/verifier.rb       2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id/verifier.rb       2023-01-25 19:47:17.000000000 +0100
@@ -1,4 +1,3 @@
-require 'active_support'
 require 'active_support/message_verifier'
 
 class GlobalID
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/global_id.rb new/lib/global_id.rb
--- old/lib/global_id.rb        2021-11-26 00:16:26.000000000 +0100
+++ new/lib/global_id.rb        2023-01-25 19:47:17.000000000 +0100
@@ -1,5 +1,5 @@
-require 'global_id/global_id'
 require 'active_support'
+require 'global_id/global_id'
 
 autoload :SignedGlobalID, 'global_id/signed_global_id'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2021-11-26 00:16:26.000000000 +0100
+++ new/metadata        2023-01-25 19:47:17.000000000 +0100
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: globalid
 version: !ruby/object:Gem::Version
-  version: 1.0.0
+  version: 1.1.0
 platform: ruby
 authors:
 - David Heinemeier Hansson
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2021-11-25 00:00:00.000000000 Z
+date: 2023-01-25 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: activesupport
@@ -59,7 +59,8 @@
 homepage: http://www.rubyonrails.org
 licenses:
 - MIT
-metadata: {}
+metadata:
+  rubygems_mfa_required: 'true'
 post_install_message: 
 rdoc_options: []
 require_paths:
@@ -75,7 +76,7 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 3.2.22
+rubygems_version: 3.4.1
 signing_key: 
 specification_version: 4
 summary: 'Refer to any model with a URI: gid://app/class/id'

Reply via email to