#40606 [NEW]: umask is not being restored when each request is finished. no fixed bug #36630

2007-02-23 Thread support at nethost dot cz
From: support at nethost dot cz
Operating system: unix-gentoo
PHP version:  5.2.1
PHP Bug Type: *Directory/Filesystem functions
Bug description:  umask is not being restored when each request is finished. no 
fixed bug #36630 

Description:

 Bug #36630   umask is not being restored when each equest is finished.
see for details in bug #36630.
  
this bug not fixed successfully, in file.c is bug in 
if (BG(umask) != -1) {
BG(umask) = oldumask;
}
instead 
if (BG(umask) == -1) {  /* yes == , no != */
BG(umask) = oldumask;
}
it fixes, but for clean code i move initializing 
BG(umask) = -1; from basic_globals_ctor to PHP_RINIT_FUNCTION(basic)  
(finalizing is in PHP_RSHUTDOWN_FUNCTION(basic))

this bug is only for sapi apache2 handler-module (apache1 has workaround
in sapi code). Or may implement same workaround in apache2 handler
module.

i try daily snapshot, and last version, all is bad fixed. after fixing all
is ok for testing code 
?=echo sprintf(%04o,umask(0111));?



Reproduce code:
---
?=echo sprintf(%04o,umask(0111));?


-- 
Edit bug report at http://bugs.php.net/?id=40606edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=40606r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=40606r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=40606r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=40606r=fixedcvs
Fixed in release: 
http://bugs.php.net/fix.php?id=40606r=alreadyfixed
Need backtrace:   http://bugs.php.net/fix.php?id=40606r=needtrace
Need Reproduce Script:http://bugs.php.net/fix.php?id=40606r=needscript
Try newer version:http://bugs.php.net/fix.php?id=40606r=oldversion
Not developer issue:  http://bugs.php.net/fix.php?id=40606r=support
Expected behavior:http://bugs.php.net/fix.php?id=40606r=notwrong
Not enough info:  
http://bugs.php.net/fix.php?id=40606r=notenoughinfo
Submitted twice:  
http://bugs.php.net/fix.php?id=40606r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=40606r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=40606r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=40606r=dst
IIS Stability:http://bugs.php.net/fix.php?id=40606r=isapi
Install GNU Sed:  http://bugs.php.net/fix.php?id=40606r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=40606r=float
No Zend Extensions:   http://bugs.php.net/fix.php?id=40606r=nozend
MySQL Configuration Error:http://bugs.php.net/fix.php?id=40606r=mysqlcfg


#40606 [Fbk-Opn]: umask is not being restored when each request is finished. no fixed bug #36630

2007-02-23 Thread support at nethost dot cz
 ID:   40606
 User updated by:  support at nethost dot cz
 Reported By:  support at nethost dot cz
-Status:   Feedback
+Status:   Open
 Bug Type: *Directory/Filesystem functions
 Operating System: unix-gentoo
 PHP Version:  5.2.1
 New Comment:

code is same as for bug 36630, as below, simple, but functional, 
?=echo sprintf(%04o,umask(0111));?
expected result is (with default umask 070)
0070
0070
0070
and not
0070
0070
0070
0111
0070
0111  - there is used same process


Previous Comments:


[2007-02-23 15:54:01] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with ?php and ends with ?,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.





[2007-02-23 15:42:32] support at nethost dot cz

Description:

 Bug #36630   umask is not being restored when each equest is
finished. see for details in bug #36630.
  
this bug not fixed successfully, in file.c is bug in 
if (BG(umask) != -1) {
BG(umask) = oldumask;
}
instead 
if (BG(umask) == -1) {  /* yes == , no != */
BG(umask) = oldumask;
}
it fixes, but for clean code i move initializing 
BG(umask) = -1; from basic_globals_ctor to PHP_RINIT_FUNCTION(basic)  
(finalizing is in PHP_RSHUTDOWN_FUNCTION(basic))

this bug is only for sapi apache2 handler-module (apache1 has
workaround in sapi code). Or may implement same workaround in apache2
handler module.

i try daily snapshot, and last version, all is bad fixed. after fixing
all is ok for testing code 
?=echo sprintf(%04o,umask(0111));?



Reproduce code:
---
?=echo sprintf(%04o,umask(0111));?






-- 
Edit this bug report at http://bugs.php.net/?id=40606edit=1