From b8ae0ecb22264b6a4dc8785c431a8d0556fa83bf Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Tue, 22 Nov 2011 03:36:29 -0500 Subject: [PATCH] - Fixed bug where session ID's length was limited to 40 characters. Since PHP5.3 it's possible to set session.hash_function to any hash algorithm that would produce strings up to 128 characters long (#1488196) --- CHANGELOG | 1 + SQL/sqlite.update.sql | 11 +++++++++++ SQL/postgres.update.sql | 2 ++ SQL/mysql.update.sql | 2 ++ SQL/postgres.initial.sql | 2 +- SQL/mysql.initial.sql | 2 +- SQL/sqlite.initial.sql | 2 +- SQL/mssql.initial.sql | 2 +- SQL/mssql.upgrade.sql | 3 +++ 9 files changed, 23 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 1dec34b..25aee7c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Fixed bug where session ID's length was limited to 40 characters (#1488196) - Added About tab in Settings - TinyMCE: - updated to 3.4.6 diff --git a/SQL/mssql.initial.sql b/SQL/mssql.initial.sql index a8d1a0b..c141141 100644 --- a/SQL/mssql.initial.sql +++ b/SQL/mssql.initial.sql @@ -81,7 +81,7 @@ GO CREATE TABLE [dbo].[session] ( - [sess_id] [varchar] (32) COLLATE Latin1_General_CI_AI NOT NULL , + [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , [created] [datetime] NOT NULL , [changed] [datetime] NULL , [ip] [varchar] (40) COLLATE Latin1_General_CI_AI NOT NULL , diff --git a/SQL/mssql.upgrade.sql b/SQL/mssql.upgrade.sql index 70cf34d..b479b16 100644 --- a/SQL/mssql.upgrade.sql +++ b/SQL/mssql.upgrade.sql @@ -239,3 +239,6 @@ ON DELETE CASCADE ON UPDATE CASCADE GO +ALTER TABLE [dbo].[session] ALTER COLUMN [sess_id] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL +GO + diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql index 28a90f5..94679f2 100644 --- a/SQL/mysql.initial.sql +++ b/SQL/mysql.initial.sql @@ -6,7 +6,7 @@ -- Table structure for table `session` CREATE TABLE `session` ( - `sess_id` varchar(40) NOT NULL, + `sess_id` varchar(128) NOT NULL, `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', `ip` varchar(40) NOT NULL, diff --git a/SQL/mysql.update.sql b/SQL/mysql.update.sql index 6604539..053649b 100644 --- a/SQL/mysql.update.sql +++ b/SQL/mysql.update.sql @@ -208,3 +208,5 @@ INDEX `changed_index` (`changed`), PRIMARY KEY (`user_id`, `mailbox`, `uid`) ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; + +ALTER TABLE `session` CHANGE `sess_id` `sess_id` varchar(128) NOT NULL; diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql index 06ecad4..3710dac 100644 --- a/SQL/postgres.initial.sql +++ b/SQL/postgres.initial.sql @@ -37,7 +37,7 @@ -- CREATE TABLE "session" ( - sess_id varchar(40) DEFAULT '' PRIMARY KEY, + sess_id varchar(128) DEFAULT '' PRIMARY KEY, created timestamp with time zone DEFAULT now() NOT NULL, changed timestamp with time zone DEFAULT now() NOT NULL, ip varchar(41) NOT NULL, diff --git a/SQL/postgres.update.sql b/SQL/postgres.update.sql index 2935cd4..d06ee84 100644 --- a/SQL/postgres.update.sql +++ b/SQL/postgres.update.sql @@ -165,3 +165,5 @@ ); CREATE INDEX cache_messages_changed_idx ON cache_messages (changed); + +ALTER TABLE "session" ALTER sess_id TYPE varchar(128); diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index 80c82a1..8c8da5c 100644 --- a/SQL/sqlite.initial.sql +++ b/SQL/sqlite.initial.sql @@ -110,7 +110,7 @@ -- CREATE TABLE session ( - sess_id varchar(40) NOT NULL PRIMARY KEY, + sess_id varchar(128) NOT NULL PRIMARY KEY, created datetime NOT NULL default '0000-00-00 00:00:00', changed datetime NOT NULL default '0000-00-00 00:00:00', ip varchar(40) NOT NULL default '', diff --git a/SQL/sqlite.update.sql b/SQL/sqlite.update.sql index 0193c7c..e6b3ee1 100644 --- a/SQL/sqlite.update.sql +++ b/SQL/sqlite.update.sql @@ -282,3 +282,14 @@ ); CREATE INDEX ix_cache_messages_changed ON cache_messages (changed); + +DROP TABLE session; +CREATE TABLE session ( + sess_id varchar(128) NOT NULL PRIMARY KEY, + created datetime NOT NULL default '0000-00-00 00:00:00', + changed datetime NOT NULL default '0000-00-00 00:00:00', + ip varchar(40) NOT NULL default '', + vars text NOT NULL +); + +CREATE INDEX ix_session_changed ON session (changed); -- Gitblit v1.9.1