なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2021/02/11)

2021/02/11分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


Merge pull request #41349 from eileencodes/add-primary_abstract_class-to-generator

Active Record、railtiesの修正です。

generatorで生成するApplicationRecordprimary_abstract_classの宣言を追加しています。


PostgreSQL: handle timestamp with time zone columns correctly in schema.rb

Active Recordの修正です。

PostgreSQLtimestamp with time zoneを使用しているカラムが、db:schema:dump`で正しいメソッド名でdumpされないバグがあったのを修正しています。


Merge pull request #41104 from f6p/skip-spring-when-locked-gems-empty

railties/lib/rails/generators/app_base.rbの修正です。

bundle installが実行されていない場合、webpacker:installを実行しないよう修正しています。必要なgemがインストールされていない場合、webpacker:installがエラーになる可能性がある為。


Merge pull request #41385 from dinahshi/preloader-grouped-by-scope

Active Recordの修正です。

Preloaderでassociationをロードする際のSQLを減らすようリファクタリングしています。


Merge pull request #40806 from eileencodes/make-migration-context-public

activerecord/lib/active_record/migration.rbの修正です。

migration contextをpublic APIにしています。幾つかのgemでmigration contextのAPIを使用しており、publicにしても良いのでは、という話になりpublicになっています。


Fix possible DoS vector in PostgreSQL money type

activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rbの修正です。

PostgreSQLでmoney typeの値の検証を正規表現で行う際に、DoSを引き起こせてしまう脆弱性(悪意のある値が指定された場合に、検証処理で負荷掛ってしまう)があったのを修正しています。

参考: [CVE-2021-22880] Possible DoS Vulnerability in Active Record PostgreSQL adapter - Security Announcements - Ruby on Rails Discussions


Prevent open redirect when allowed host starts with a dot

actionpack/lib/action_dispatch/middleware/host_authorization.rbの修正です。

config.hostsにdotで始まるホスト名をしている場合に、オープンリダイレクト出来てしまう脆弱性があったのを修正しています。

参考: [CVE-2021-22881] Possible Open Redirect in Host Authorization Middleware - Security Announcements - Ruby on Rails Discussions


Add missing CHANGELOG entry for #40351

activerecord/CHANGELOG.mdactiverecord/test/cases/calculations_test.rbの修正です。

averageの戻り値の型を変更した、Return BigDecimal OR Float from "average" operationsの対応についてCHANGELOGにエントリーを、及び、BigDecimalが変える場合のテストを追加しています。


Overwrite bin/yarn when running app:binstub:yarn

railties/lib/rails/generators/rails/app/app_generator.rbの修正です。

app:binstub:yarn実行時にbin/yarnが更新されるよう修正しています。bin/yarnの内容がRails 6.1で更新されており、更新された内容が反映されるようにする為。


Remove unnessary escape char in Regexp

actionpack/lib/action_dispatch/middleware/host_authorization.rbの修正です。

host authorizeの正規表現から不要なエスケープを削除しています。


Remove broken test

activerecord/test/cases/calculations_test.rbの修正です。

Add missing CHANGELOG entry for #40351で追加したテストがSQLite3とPostgreSQLでエラーになってしまっていたので、削除しています。


A value acts like time object should respond to getutc and getlocal

activemodel/lib/active_model/type/helpers/time_value.rbactiverecord/lib/active_record/connection_adapters/abstract/quoting.rbの修正です。

time valueに対してrespond_to?(:getutc)、及び、respond_to?(:getlocal)を行っていたのを、行わないよう修正しています。渡ってきている値はtime objectとしての振る舞いを保持している値の筈で、getutcgetlocalも使える筈なので。