aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters
diff options
context:
space:
mode:
authorpdebelak <pdebelak@gmail.com>2017-07-07 16:19:56 -0500
committerpdebelak <pdebelak@gmail.com>2017-07-07 16:19:56 -0500
commit38b041713b609d8fcd2c458804cdef8a81e567a7 (patch)
treea8619e71433ff64aba383275d518472bd9009412 /activerecord/lib/active_record/connection_adapters
parent98f8f81879825a009b0c751b3178fcb687e3033a (diff)
downloadrails-38b041713b609d8fcd2c458804cdef8a81e567a7.tar.gz
rails-38b041713b609d8fcd2c458804cdef8a81e567a7.tar.bz2
rails-38b041713b609d8fcd2c458804cdef8a81e567a7.zip
Don't allow uuids with orphan curly braces
The uuid validation regex was allowing uuids to have a single leading curly brace or single trailing curly brace. Saving with such a uuid would cause Postgres to generate an exception even though the record seemed valid. With this change, the regex requires both a leading *and* a trailing curly brace or neither to be valid.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/oid/uuid.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/oid/uuid.rb b/activerecord/lib/active_record/connection_adapters/postgresql/oid/uuid.rb
index 5e839228e9..db92333ef7 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/oid/uuid.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/oid/uuid.rb
@@ -3,7 +3,7 @@ module ActiveRecord
module PostgreSQL
module OID # :nodoc:
class Uuid < Type::Value # :nodoc:
- ACCEPTABLE_UUID = %r{\A\{?([a-fA-F0-9]{4}-?){8}\}?\z}x
+ ACCEPTABLE_UUID = %r{\A(\{)?([a-fA-F0-9]{4}-?){8}(?(1)\}|)\z}
alias_method :serialize, :deserialize