]> granicus.if.org Git - php/commitdiff
fix Phar::running()
authorGreg Beaver <cellog@php.net>
Mon, 21 Apr 2008 18:06:20 +0000 (18:06 +0000)
committerGreg Beaver <cellog@php.net>
Mon, 21 Apr 2008 18:06:20 +0000 (18:06 +0000)
ext/phar/phar_object.c
ext/phar/tests/phar_running.phpt [new file with mode: 0644]

index e50092b19566957e45c207074c62dcd47c83a938..fdfac0eb3c4735a42a70491ef87a9566f329e18d 100755 (executable)
@@ -453,7 +453,7 @@ PHP_METHOD(Phar, running)
        fname = zend_get_executed_filename(TSRMLS_C);
        fname_len = strlen(fname);
 
-       if (SUCCESS == phar_split_fname(fname, fname_len, &arch, &arch_len, &entry, &entry_len, 2, 0 TSRMLS_CC)) {
+       if (fname_len > 7 && !memcmp(fname, "phar://", 7) && SUCCESS == phar_split_fname(fname, fname_len, &arch, &arch_len, &entry, &entry_len, 2, 0 TSRMLS_CC)) {
                efree(entry);
                if (retphar) {
                        RETVAL_STRINGL(fname, arch_len + 7, 1);
@@ -463,7 +463,7 @@ PHP_METHOD(Phar, running)
                        RETURN_STRINGL(arch, arch_len, 0);
                }
        }
-       RETURN_STRING("", 0);
+       RETURN_STRINGL("", 0, 1);
 }
 /* }}} */
 
diff --git a/ext/phar/tests/phar_running.phpt b/ext/phar/tests/phar_running.phpt
new file mode 100644 (file)
index 0000000..2d132b9
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+Phar: Phar::running()
+--SKIPIF--
+<?php if (!extension_loaded("phar")) die("skip"); ?>
+--INI--
+phar.readonly=0
+--FILE--
+<?php
+$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
+$pname = 'phar://' . $fname;
+
+$phar = new Phar($fname);
+$phar['index.php'] = '<?php
+Phar::running(array());
+var_dump(Phar::running());
+var_dump(Phar::running(false));
+?>';
+include $pname . '/index.php';
+var_dump(Phar::running());
+?>
+===DONE===
+--CLEAN--
+<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
+--EXPECTF--
+Warning: Phar::running() expects parameter 1 to be boolean, array given in phar://%sphar_running.phar.php/index.php on line 2
+string(%d) "phar://%sphar_running.phar.php"
+string(%d) "%sphar_running.phar.php"
+string(0) ""
+===DONE===