Bug #72317 [Opn->Fbk]: tempnam fails with prefix "php"
| From: | ab@php.net | Date: | Mon, 06 Jun 2016 07:44:20 +0000 |
| Subject: | Bug #72317 [Opn->Fbk]: tempnam fails with prefix "php" | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-201468@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=72317&edit=1
ID: 72317
Updated by: ab@php.net
Reported by: flip101 at gmail dot com
Summary: tempnam fails with prefix "php"
-Status: Open
+Status: Feedback
Type: Bug
Package: *Directory/Filesystem functions
Operating System: Windows 10 64 bits
PHP Version: 5.6.20
Block user comment: N
Private report: N
New Comment:
Thanks for the report. Can't reproduce as well. Also it's unlikely an issue with exactly
x64 PHP5, as the I/O layer is same.
@flip101 does the same happen when using a dir different from temp? For one, could you please post
the relevant part of the procmon output when running into this issue? The Process Monitor is
fetcheable from sysinternals.com.
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2016-06-03 15:12:04] cmb@php.net
> My exact php version is this one: php-5.6.20-Win32-VC11-x64.zip
Running your latest test script on this very version:
bool(true)
bool(true)
string(31) "C:\Users\cmb\AppData\Local\Temp"
string(43) "C:\Users\cmb\AppData\Local\Temp\phpB8D1.tmp"
string(43) "C:\Users\cmb\AppData\Local\Temp\aaaB8E2.tmp"
So, I still can't reproduce the issue. Anyhow, note[1]:
| The x64 builds of PHP 5 for Windows are experimental,
I suggest you try with an x86 build of PHP 5.6.22.
[1] <http://windows.php.net/download/>
------------------------------------------------------------------------
[2016-06-03 13:57:27] flip101 at gmail dot com
Forgot to change the username in my output, but it's the same user ..
------------------------------------------------------------------------
[2016-06-03 13:20:44] flip101 at gmail dot com
I double check error reporting it's on E_ALL both in my php.ini (and i double check that i was
viewing the right php.ini by checking which one was loaded) and also i put error_reporting(E_ALL);
at the top (new script at the bottom of this comment). I don't see any warnings or notices,
exact output at bottom of comment. My exact php version is this one: php-5.6.20-Win32-VC11-x64.zip
==== Script
<?php
error_reporting(E_ALL);
var_dump(
file_exists(sys_get_temp_dir()),
is_writable(sys_get_temp_dir()),
sys_get_temp_dir(),
tempnam(sys_get_temp_dir(), 'php'),
tempnam(sys_get_temp_dir(), 'aaa')
);
==== End script
==== Console
C:\dev>php test.php
bool(true)
bool(true)
string(34) "C:\Users\plagas\AppData\Local\Temp"
bool(false)
string(46) "C:\Users\plagas\AppData\Local\Temp\aaaE26E.tmp"
==== End Console
------------------------------------------------------------------------
[2016-06-03 12:21:38] cmb@php.net
I can't reproduce this issue, neither on Windows 10 x64 with
PHP 5.6.22 VC11 x64 Non Thread Safe (2016-May-26 18:22:21), nor on
3v4l.org, see <https://3v4l.org/Wig5o>.
Please make sure that you have error_reporting=-E_ALL, and double-
check that there are no warnings or notices reported.
------------------------------------------------------------------------
[2016-06-02 15:35:19] flip101 at gmail dot com
Description:
------------
Not sure if the "php" prefix is reserved, but if it is, it's not documented at https://secure.php.net/manual/en/function.tempnam.php
Note: that i made up the expected results (on line 4), not sure how the random filename algorithm
works.
Test script:
---------------
var_dump(
file_exists(sys_get_temp_dir()),
is_writable(sys_get_temp_dir()),
sys_get_temp_dir(),
tempnam(sys_get_temp_dir(), 'php'),
tempnam(sys_get_temp_dir(), 'aaa')
);
Expected result:
----------------
bool(true)
bool(true)
string(34) "C:\Users\flip101\AppData\Local\Temp"
string(45) "C:\Users\flip101\AppData\Local\Temp\php2EC.tmp"
string(45) "C:\Users\flip101\AppData\Local\Temp\aaaF2A.tmp"
Actual result:
--------------
bool(true)
bool(true)
string(34) "C:\Users\flip101\AppData\Local\Temp"
bool(false)
string(45) "C:\Users\flip101\AppData\Local\Temp\aaaF2A.tmp"
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=72317&edit=1