diff --git a/library/HTMLPurifier/DefinitionCache/Serializer.php b/library/HTMLPurifier/DefinitionCache/Serializer.php index 902c19c0..426ad185 100644 --- a/library/HTMLPurifier/DefinitionCache/Serializer.php +++ b/library/HTMLPurifier/DefinitionCache/Serializer.php @@ -199,7 +199,7 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac // set permissions of the new file (no execute) $chmod = $config->get('Cache.SerializerPermissions'); if ($chmod !== null) { - chmod($file, $chmod); + chmod($file, $chmod & 0666); } } return $result; diff --git a/tests/HTMLPurifier/DefinitionCache/SerializerTest.php b/tests/HTMLPurifier/DefinitionCache/SerializerTest.php index cd226b34..57c2c3e2 100644 --- a/tests/HTMLPurifier/DefinitionCache/SerializerTest.php +++ b/tests/HTMLPurifier/DefinitionCache/SerializerTest.php @@ -23,7 +23,6 @@ class HTMLPurifier_DefinitionCache_SerializerTest extends HTMLPurifier_Definitio $rel_file = HTMLPURIFIER_PREFIX . '/HTMLPurifier/DefinitionCache/Serializer/Test/' . $config_md5 . '.ser' ); - if($file && file_exists($file)) unlink($file); // prevent previous failures from causing problems $this->assertIdentical($config_md5, $cache->generateKey($config)); @@ -216,12 +215,10 @@ class HTMLPurifier_DefinitionCache_SerializerTest extends HTMLPurifier_Definitio $def_original = $this->generateDefinition(); $cache->add($def_original, $config); + $this->assertFileExist($dir . '/Test/1.0.0,serial,1.ser'); - $file_path = $dir . '/Test/1.0.0,serial,1.ser'; - $this->assertFileExist($file_path); - - $file_permissions = substr(sprintf("%o",fileperms($file_path)),-4);; - $this->assertEqual("0700", $file_permissions); + $this->assertEqual(0600, 0777 & fileperms($dir . '/Test/1.0.0,serial,1.ser')); + $this->assertEqual(0700, 0777 & fileperms($dir . '/Test')); unlink($dir . '/Test/1.0.0,serial,1.ser'); rmdir( $dir . '/Test');