Code

patches: Added 02-php5.4.diff -- use ob_end_flush() in favor of ob_end_clean()
authorSebastian Harl <sh@tokkee.org>
Tue, 3 Apr 2012 11:06:51 +0000 (13:06 +0200)
committerSebastian Harl <sh@tokkee.org>
Tue, 3 Apr 2012 11:06:51 +0000 (13:06 +0200)
… if the buffer contains any data to make sure the rendered page is actually
displayed (PHP 5.4 handles end_clean() a bit different than previous
versions).

Thanks to Bernhard Schmidt for reporting this and Jörg Linge for tracking down
to problem.
Closes: #665197
debian/changelog
debian/patches/02-php5.4.diff [new file with mode: 0644]
debian/patches/series

index 2e5a52b3f5038f8a2f072ef69c61738918ce467b..7822392755b1a8318bcb2f519623c40b77a770df 100644 (file)
@@ -1,3 +1,14 @@
+libkohana2-php (2.3.4-2) unstable; urgency=low
+
+  * debian/patches:
+    - Added 02-php5.4.diff -- use ob_end_flush() in favor of ob_end_clean() if
+      the buffer contains any data to make sure the rendered page is actually
+      displayed (PHP 5.4 handles end_clean() a bit different than previous
+      versions); thanks to Bernhard Schmidt for reporting this and Jörg Linge
+      for tracking down to problem (Closes: #665197).
+
+ -- Sebastian Harl <tokkee@debian.org>  Tue, 03 Apr 2012 13:03:53 +0200
+
 libkohana2-php (2.3.4-1) unstable; urgency=low
 
   [ Sven Velt ]
diff --git a/debian/patches/02-php5.4.diff b/debian/patches/02-php5.4.diff
new file mode 100644 (file)
index 0000000..99226aa
--- /dev/null
@@ -0,0 +1,26 @@
+Description: Fix for PHP 5.4.
+ PHP 5.4 seems to handle ob_end_clean() a bit different than previous
+ versions.
+Author: Sebastian Harl <tokkee@debian.org>
+
+--- a/system/core/Kohana.php
++++ b/system/core/Kohana.php
+@@ -719,7 +719,17 @@ final class Kohana {
+                       }
+                       // Store the Kohana output buffer
+-                      ob_end_clean();
++                      if (($ob_len = ob_get_length()) !== FALSE)
++                      {
++                              if ($ob_len > 0)
++                              {
++                                      ob_end_flush();
++                              }
++                              else
++                              {
++                                      ob_end_clean();
++                              }
++                      }
+               }
+       }
index f591f789621a8074fb52557e2f6fcfe1e7b48265..3594cd999e973d72e16c4e1d2bab0b12eac1c72c 100644 (file)
@@ -1,2 +1,3 @@
 01-font-path.diff
+02-php5.4.diff