1--TEST--
2Phar: ignore filenames starting with / on offsetSet
3--SKIPIF--
4<?php if (!extension_loaded("phar")) die("skip"); ?>
5--INI--
6phar.readonly=0
7phar.require_hash=1
8--FILE--
9<?php
10
11$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
12$pname = 'phar://'.$fname;
13$iname = '/file.txt';
14$ename = '/error/..';
15
16$p = new Phar($fname);
17$p[$iname] = "foobar\n";
18
19try
20{
21	$p[$ename] = "foobar\n";
22}
23catch(Exception $e)
24{
25	echo $e->getMessage() . "\n";
26}
27
28include($pname . $iname);
29
30// extra coverage
31try {
32$p['.phar/oops'] = 'hi';
33} catch (Exception $e) {
34echo $e->getMessage(),"\n";
35}
36try {
37$a = $p['.phar/stub.php'];
38} catch (Exception $e) {
39echo $e->getMessage(),"\n";
40}
41?>
42===DONE===
43--CLEAN--
44<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
45--EXPECT--
46Entry /error/.. does not exist and cannot be created: phar error: invalid path "/error/.." contains upper directory reference
47foobar
48Cannot set any files or directories in magic ".phar" directory
49Entry .phar/stub.php does not exist
50===DONE===
51