Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#1484236 closed Bugs (worksforme)

gzip compression gets enabled especially if you have disabled it in php.ini

Reported by: kajtzu@… Owned by: till
Priority: 2 Milestone: 0.1-stable
Component: PHP backend Version: 0.1-beta2
Severity: normal Keywords:
Cc:

Description

Found in index.php:109:

if (function_exists('ob_gzhandler') && !ini_get('zlib.output_compression'))

ob_start('ob_gzhandler');

else

ob_start();

Translated it means that if the function exists (php was compiled with zlib) and zlib.output_compression is _OFF_ (see http://fi.php.net/ini_get for ini_get() return value semantics) we continue with gzip compression.

See http://support.microsoft.com/kb/321722 if you are interested in why this is bad; to summarize the resulting mess is that users on shared workstations (reception, etc.) start seeing each others emails as long as the UID is the same between inboxes.

Patch follows.

Also bug #1484221 is related to this, there is another way user messages can get cached.

Attachments (1)

keu (434 bytes) - added by kajtzu@… 6 years ago.
don't compress unless zlib.output_compression is true, affects index.php

Download all attachments as: .zip

Change History (12)

Changed 6 years ago by kajtzu@…

don't compress unless zlib.output_compression is true, affects index.php

comment:1 Changed 6 years ago by seansan

You know what? I have encountered this problem of seeing other peoples mails but never really was able to reproduce. Wonder if this was the problem.

comment:2 Changed 6 years ago by seansan

  • Milestone set to 0.1-rc1
  • Version changed from svn-trunk to 0.1-beta2

This error occurs in beta2 (and also SVN) - altered version and added to milestone RC1

comment:3 Changed 6 years ago by seansan

When fixing also see issue #1484221 (regarding reading other peoples e-mails)

comment:4 Changed 6 years ago by estadtherr

  • Owner set to estadtherr
  • Status changed from new to assigned

comment:5 Changed 6 years ago by estadtherr

The patch attempts to enable ob_gzhandler when zlib.compression is already enabled. Only one of those compression methods can be active at one time (I'm not sure which one wins when both are enabled). See ob_gzhandler page on php.net. The original intent of the logic was presumably to use ob_gzhandler iff zlib.compression was turned off, which makes sense. If it's just a bug with IE 5.x, maybe this should be a dontfix.

comment:6 Changed 6 years ago by thomasb

  • Resolution set to fixed
  • Status changed from assigned to closed

Patch applied to Trunk ([ff52bee1]).
Let's try it this way.

comment:7 Changed 6 years ago by kaouete

  • Resolution fixed deleted
  • Status changed from closed to reopened

Hi,

I guess this is because of this patch that i get this warning with roundcube :
Warning: ob_start() [ref.outcontrol]: output handler 'ob_gzhandler' conflicts with 'zlib output compression' in /usr/share/roundcube/index.php on line 107

I just don't understand, one day (#1471069) someone says that zlib.output_compression should not be enabled with ob_gzhandler, someone says it too here, and just after the patch is applied to trunk, and now I get this warning on my debian that enable zlib.output_compression by default (I think, maybe I enabled it myself ... :)

Shouldn't it be reversed ? Or is there some explanation or this ?

comment:8 Changed 6 years ago by toots

Note:  You cannot use both ob_gzhandler() and zlib.output_compression. 
Also note that using  zlib.output_compression is preferred over ob_gzhandler().

Seems to me that this note from php.net is clear enough to revert this patch...

comment:9 Changed 6 years ago by thomasb

  • Component changed from Client to PHP backend
  • Milestone changed from 0.1-rc1 to 0.1-stable
  • Severity changed from major to normal

comment:10 Changed 5 years ago by till

  • Owner changed from estadtherr to till
  • Status changed from reopened to new

I am reverting this.

According to the note on php.net this is obvious.

comment:11 Changed 5 years ago by till

  • Resolution set to worksforme
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.