Project

General

Profile

Actions

Patch #24283

closed

Validate length of string fields

Added by Felix Schäfer over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Category:
Code cleanup/refactoring
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Databases throw errors when trying to save data that doesn't fit in the allotted space in the field (MySQL used to not do that and just silently drop the part that was over the length of the field, but does throw errors in strict mode), which cause Redmine to crash.

The coming patch adds length validations for most fields a user can directly write to and that is a string (i.e. ist a VARCHAR in MySQL)


Files

24283.patch (3.54 KB) 24283.patch Felix Schäfer, 2016-11-07 11:49
Actions #1

Updated by Felix Schäfer over 7 years ago

Actions #2

Updated by Jan from Planio www.plan.io over 7 years ago

  • Target version set to Candidate for next minor release
Actions #3

Updated by Jean-Philippe Lang over 7 years ago

  • Category set to Code cleanup/refactoring
  • Status changed from New to Resolved
  • Assignee set to Jean-Philippe Lang
  • Target version changed from Candidate for next minor release to 3.2.5

Committed, thanks.

Actions #4

Updated by Jean-Philippe Lang over 7 years ago

  • Status changed from Resolved to Closed
Actions #5

Updated by Yui Naruse over 7 years ago

validates_length_of :regexp, maximum: 30

custom_fields.regexp is varchar(255).
It must be maximum: 255.

Actions #6

Updated by Go MAEDA over 7 years ago

  • Status changed from Closed to Reopened

Yui Naruse wrote:

validates_length_of :regexp, maximum: 30

custom_fields.regexp is varchar(255).
It must be maximum: 255.

Thank you for pointing it out.
Reopening this issue.

Index: app/models/custom_field.rb
===================================================================
--- app/models/custom_field.rb    (revision 16111)
+++ app/models/custom_field.rb    (working copy)
@@ -32,7 +32,7 @@
   validates_presence_of :name, :field_format
   validates_uniqueness_of :name, :scope => :type
   validates_length_of :name, :maximum => 30
-  validates_length_of :regexp, maximum: 30
+  validates_length_of :regexp, maximum: 255
   validates_inclusion_of :field_format, :in => Proc.new { Redmine::FieldFormat.available_formats }
   validate :validate_custom_field
   attr_protected :id
Actions #7

Updated by Jean-Philippe Lang over 7 years ago

  • Status changed from Reopened to Closed

Committed, thanks.

Actions

Also available in: Atom PDF