]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Prevents redirect URLs that have canonical URLs longer than 255 chars from being...
authorBrett Taylor <brett@webfroot.co.nz>
Wed, 12 Aug 2009 04:00:46 +0000 (16:00 +1200)
committerBrenda Wallace <shiny@cpan.org>
Wed, 12 Aug 2009 04:17:02 +0000 (16:17 +1200)
The reason for this is that table 'file' column 'url' is a VARCHAR(255) in MySQL and it silently truncates URLs longer than 255 characters, breaking the url.

The proper fix for this is to improve this column, making its type TEXT, but there are no database changes for 0.8.x, so this is the next best thing for data integrity. A migration script for 0.9.x could be written to audit the database checking for redirects and updating these urls to their proper canonical url.

classes/File.php

index 959301edaeff30672bd716326c4aae1420bda476..b2c510340df11d99d7949d05f15451a010da33c2 100644 (file)
@@ -95,7 +95,8 @@ class File extends Memcached_DataObject
             if (empty($file_redir)) {
                 $redir_data = File_redirection::where($given_url);
                 $redir_url = $redir_data['url'];
-                if ($redir_url === $given_url) {
+                // TODO: max field length
+                if ($redir_url === $given_url || strlen($redir_url) > 255) { 
                     $x = File::saveNew($redir_data, $given_url);
                     $file_id = $x->id;
                 } else {