From e34c07094727f7ab777bc94b5b46df9c38bd6eee Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Fri, 18 Nov 2005 20:48:56 +0100
Subject: [PATCH] fixed a very rare problem with io_readfile and unserialize

darcs-hash:20051118194856-7ad00-5b7f8dea8371acd85ccfe31ac6f748cb2b619486.gz
---
 inc/io.php          | 8 ++++++--
 inc/parserutils.php | 4 ++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/inc/io.php b/inc/io.php
index e1c4d1eb9..ff318bd67 100644
--- a/inc/io.php
+++ b/inc/io.php
@@ -36,7 +36,7 @@ function io_sweepNS($id){
  *
  * @author  Andreas Gohr <andi@splitbrain.org>
  */
-function io_readFile($file){
+function io_readFile($file,$clean=true){
   $ret = '';
   if(@file_exists($file)){
     if(substr($file,-3) == '.gz'){
@@ -45,7 +45,11 @@ function io_readFile($file){
       $ret = join('',file($file));
     }
   }
-  return cleanText($ret);
+  if($clean){
+    return cleanText($ret);
+  }else{
+    return $ret;
+  }
 }
 
 /**
diff --git a/inc/parserutils.php b/inc/parserutils.php
index 16ee5c6f5..0a476b998 100644
--- a/inc/parserutils.php
+++ b/inc/parserutils.php
@@ -179,7 +179,7 @@ function p_cached_instructions($file,$cacheonly=false){
   // cache forced?
   if($cacheonly){
     if($cachetime){
-      return unserialize(io_readfile($cache));
+      return unserialize(io_readfile($cache,false));
     }else{
       return array();
     }
@@ -194,7 +194,7 @@ function p_cached_instructions($file,$cacheonly=false){
       && ($cachetime > @filemtime(DOKU_INC.'inc/parser/handler.php')))// newer than the handler
   {
     //well then use the cache
-    return unserialize(io_readfile($cache));
+    return unserialize(io_readfile($cache,false));
   }elseif(@file_exists($file)){
     // no cache - do some work
     $ins = p_get_instructions(io_readfile($file));
-- 
GitLab