Re: [PHP-CVS] cvs: php-src(PHP_5_3) /ext/standard file.c
Can't you check with php_stream_supports_lock here wether the stream- wrapper supports locking? regards, Benjamin On 27.03.2008, at 00:06, Ilia Alshanetsky wrote: iliaa Wed Mar 26 23:06:48 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standardfile.c Log: Fixed bug #44501 (LOCK_EX mode in file_put_contents() is impropertly handled in combination with url wrappers) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/file.c?r1=1.409.2.6.2.28.2.9&r2=1.409.2.6.2.28.2.10&diff_format=u Index: php-src/ext/standard/file.c diff -u php-src/ext/standard/file.c:1.409.2.6.2.28.2.9 php-src/ext/ standard/file.c:1.409.2.6.2.28.2.10 --- php-src/ext/standard/file.c:1.409.2.6.2.28.2.9 Sun Feb 24 11:45:55 2008 +++ php-src/ext/standard/file.c Wed Mar 26 23:06:47 2008 @@ -21,7 +21,7 @@ + --+ */ -/* $Id: file.c,v 1.409.2.6.2.28.2.9 2008/02/24 11:45:55 felipe Exp $ */ +/* $Id: file.c,v 1.409.2.6.2.28.2.10 2008/03/26 23:06:47 iliaa Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -596,6 +596,13 @@ if (flags & PHP_FILE_APPEND) { mode[0] = 'a'; } else if (flags & LOCK_EX) { + /* check to make sure we are dealing with a regular file */ + if (php_memnstr(filename, "://", sizeof("://") - 1, filename + filename_len)) { + if (strncasecmp(filename, "file://", sizeof("file://") - 1)) { +php_error_docref(NULL TSRMLS_CC, E_WARNING, "Exclusive locks may only be set for regular files"); + RETURN_FALSE; + } + } mode[0] = 'c'; } mode[2] = '\0'; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/tokenizer Makefile.frag
tony2001Thu Mar 27 08:32:49 2008 UTC Modified files: /php-src/ext/tokenizer Makefile.frag Log: add missing EOL and fix build http://cvs.php.net/viewvc.cgi/php-src/ext/tokenizer/Makefile.frag?r1=1.5&r2=1.6&diff_format=u Index: php-src/ext/tokenizer/Makefile.frag diff -u php-src/ext/tokenizer/Makefile.frag:1.5 php-src/ext/tokenizer/Makefile.frag:1.6 --- php-src/ext/tokenizer/Makefile.frag:1.5 Wed Mar 26 14:46:17 2008 +++ php-src/ext/tokenizer/Makefile.frag Thu Mar 27 08:32:48 2008 @@ -1,2 +1,3 @@ -$(builddir)/tokenizer.lo: $(top_srcdir)/Zend/zend_language_parser.c $(top_srcdir)/Zend/zend_language_scanner.c \ No newline at end of file +$(builddir)/tokenizer.lo: $(top_srcdir)/Zend/zend_language_parser.c $(top_srcdir)/Zend/zend_language_scanner.c + -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_3) /ext/standard file.c
On 27.03.2008 10:15, Benjamin Schulz wrote: > Can't you check with php_stream_supports_lock here wether the stream- > wrapper supports locking? I agree, that would make much more sense. -- Wbr, Antony Dovgal -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: CVSROOT / avail
derick Thu Mar 27 10:31:40 2008 UTC Modified files: /CVSROOTavail Log: - Give lukas qaweb karma. http://cvs.php.net/viewvc.cgi/CVSROOT/avail?r1=1.1374&r2=1.1375&diff_format=u Index: CVSROOT/avail diff -u CVSROOT/avail:1.1374 CVSROOT/avail:1.1375 --- CVSROOT/avail:1.1374Sun Mar 23 14:51:56 2008 +++ CVSROOT/avail Thu Mar 27 10:31:40 2008 @@ -54,7 +54,7 @@ # The PHP Quality Assurance Team maintains their own website. -avail|ilia,jalal,zak,andre,lyric,jmoore,ronabop,sebastian,joey,jani,torben,hellekin,cnewbill,bate,yohgaki,jan,imajes,derick,msopacua,nohn,edink,iliaa,helly,sean,nlopess,tony2001,zoe,johannes|qaweb +avail|ilia,jalal,zak,andre,lyric,jmoore,ronabop,sebastian,joey,jani,torben,hellekin,cnewbill,bate,yohgaki,jan,imajes,derick,msopacua,nohn,edink,iliaa,helly,sean,nlopess,tony2001,zoe,johannes,lsmith|qaweb # Some people get only access to specific languages for phpdoc avail|diab,daif,salehcoder|phpdoc-ar -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_3) / NEWS /ext/standard/tests/file include_streams.phpt /main fopen_wrappers.c php_streams.h /main/streams plain_wrapper.c streams.c
dmitry Thu Mar 27 10:33:40 2008 UTC Added files: (Branch: PHP_5_3) /php-src/ext/standard/tests/fileinclude_streams.phpt Modified files: /php-srcNEWS /php-src/main fopen_wrappers.c php_streams.h /php-src/main/streams plain_wrapper.c streams.c Log: Added ability to use stream wrappers in include_path http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.151&r2=1.2027.2.547.2.965.2.152&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.965.2.151 php-src/NEWS:1.2027.2.547.2.965.2.152 --- php-src/NEWS:1.2027.2.547.2.965.2.151 Tue Mar 25 20:00:18 2008 +++ php-src/NEWSThu Mar 27 10:33:39 2008 @@ -4,6 +4,7 @@ - Removed the experimental RPL (master/slave) functions from mysqli. (Andrey) - Dropped zend.ze1_compatibility_mode (Dmitry) +- Added ability to use stream wrappers in include_path (Gregory, Dmitry) - Added concept of "delayed early binding" that allows opcode caches to perform class declaration (early and/or run-time binding) in exactly the same order as vanila php. (Dmitry) http://cvs.php.net/viewvc.cgi/php-src/main/fopen_wrappers.c?r1=1.175.2.3.2.13.2.9&r2=1.175.2.3.2.13.2.10&diff_format=u Index: php-src/main/fopen_wrappers.c diff -u php-src/main/fopen_wrappers.c:1.175.2.3.2.13.2.9 php-src/main/fopen_wrappers.c:1.175.2.3.2.13.2.10 --- php-src/main/fopen_wrappers.c:1.175.2.3.2.13.2.9Mon Mar 24 09:30:41 2008 +++ php-src/main/fopen_wrappers.c Thu Mar 27 10:33:40 2008 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: fopen_wrappers.c,v 1.175.2.3.2.13.2.9 2008/03/24 09:30:41 dmitry Exp $ */ +/* $Id: fopen_wrappers.c,v 1.175.2.3.2.13.2.10 2008/03/27 10:33:40 dmitry Exp $ */ /* {{{ includes */ @@ -447,14 +447,22 @@ char resolved_path[MAXPATHLEN]; char trypath[MAXPATHLEN]; const char *ptr, *end, *p; + char *actual_path; + php_stream_wrapper *wrapper; if (!filename) { return NULL; } - /* Don't resolve paths which contain protocol */ + /* Don't resolve paths which contain protocol (except of file://) */ for (p = filename; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++); if ((*p == ':') && (p - filename > 1) && (p[1] == '/') && (p[2] == '/')) { + wrapper = php_stream_locate_url_wrapper(filename, &actual_path, STREAM_OPEN_FOR_INCLUDE TSRMLS_CC); + if (wrapper == &php_plain_files_wrapper) { + if (tsrm_realpath(actual_path, resolved_path TSRMLS_CC)) { + return estrdup(resolved_path); + } + } return NULL; } @@ -473,7 +481,18 @@ ptr = path; while (ptr && *ptr) { - end = strchr(ptr, DEFAULT_DIR_SEPARATOR); + /* Check for stream wrapper */ + int is_stream_wrapper = 0; + + for (p = ptr; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++); + if ((*p == ':') && (p - ptr > 1) && (p[1] == '/') && (p[2] == '/')) { + /* .:// or ..:// is not a stream wrapper */ + if (p[-1] != '.' || p[-2] != '.' || p - 2 != ptr) { + p += 3; + is_stream_wrapper = 1; + } + } + end = strchr(p, DEFAULT_DIR_SEPARATOR); if (end) { if ((end-ptr) + 1 + filename_length + 1 >= MAXPATHLEN) { ptr = end + 1; @@ -494,7 +513,23 @@ memcpy(trypath+len+1, filename, filename_length+1); ptr = NULL; } - if (tsrm_realpath(trypath, resolved_path TSRMLS_CC)) { + actual_path = trypath; + if (is_stream_wrapper) { + wrapper = php_stream_locate_url_wrapper(trypath, &actual_path, STREAM_OPEN_FOR_INCLUDE TSRMLS_CC); + if (!wrapper) { + continue; + } else if (wrapper != &php_plain_files_wrapper) { + if (wrapper->wops->url_stat) { + php_stream_statbuf ssb; + + if (SUCCESS == wrapper->wops->url_stat(wrapper, trypath, 0, &ssb, NULL TSRMLS_CC)) { + return estrdup(trypath); + } + } + continue; + } + } + if (tsrm_realpath(actual_path, resolved_path TSRMLS_CC)) { return estrdup(resolved_path); } } /* end provided path */ @@ -511,7 +546,27 @@
[PHP-CVS] cvs: php-src /ext/standard/tests/file include_streams.phpt /main fopen_wrappers.c php_streams.h /main/streams plain_wrapper.c streams.c
dmitry Thu Mar 27 10:33:53 2008 UTC Modified files: /php-src/main fopen_wrappers.c php_streams.h /php-src/main/streams plain_wrapper.c streams.c /php-src/ext/standard/tests/fileinclude_streams.phpt Log: Added ability to use stream wrappers in include_path http://cvs.php.net/viewvc.cgi/php-src/main/fopen_wrappers.c?r1=1.205&r2=1.206&diff_format=u Index: php-src/main/fopen_wrappers.c diff -u php-src/main/fopen_wrappers.c:1.205 php-src/main/fopen_wrappers.c:1.206 --- php-src/main/fopen_wrappers.c:1.205 Mon Mar 24 09:30:54 2008 +++ php-src/main/fopen_wrappers.c Thu Mar 27 10:33:52 2008 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: fopen_wrappers.c,v 1.205 2008/03/24 09:30:54 dmitry Exp $ */ +/* $Id: fopen_wrappers.c,v 1.206 2008/03/27 10:33:52 dmitry Exp $ */ /* {{{ includes */ @@ -455,14 +455,22 @@ char resolved_path[MAXPATHLEN]; char trypath[MAXPATHLEN]; const char *ptr, *end, *p; + char *actual_path; + php_stream_wrapper *wrapper; if (!filename) { return NULL; } - /* Don't resolve paths which contain protocol */ + /* Don't resolve paths which contain protocol (except of file://) */ for (p = filename; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++); if ((*p == ':') && (p - filename > 1) && (p[1] == '/') && (p[2] == '/')) { + wrapper = php_stream_locate_url_wrapper(filename, &actual_path, STREAM_OPEN_FOR_INCLUDE TSRMLS_CC); + if (wrapper == &php_plain_files_wrapper) { + if (tsrm_realpath(actual_path, resolved_path TSRMLS_CC)) { + return estrdup(resolved_path); + } + } return NULL; } @@ -481,7 +489,18 @@ ptr = path; while (ptr && *ptr) { - end = strchr(ptr, DEFAULT_DIR_SEPARATOR); + /* Check for stream wrapper */ + int is_stream_wrapper = 0; + + for (p = ptr; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++); + if ((*p == ':') && (p - ptr > 1) && (p[1] == '/') && (p[2] == '/')) { + /* .:// or ..:// is not a stream wrapper */ + if (p[-1] != '.' || p[-2] != '.' || p - 2 != ptr) { + p += 3; + is_stream_wrapper = 1; + } + } + end = strchr(p, DEFAULT_DIR_SEPARATOR); if (end) { if ((end-ptr) + 1 + filename_length + 1 >= MAXPATHLEN) { ptr = end + 1; @@ -502,7 +521,23 @@ memcpy(trypath+len+1, filename, filename_length+1); ptr = NULL; } - if (tsrm_realpath(trypath, resolved_path TSRMLS_CC)) { + actual_path = trypath; + if (is_stream_wrapper) { + wrapper = php_stream_locate_url_wrapper(trypath, &actual_path, STREAM_OPEN_FOR_INCLUDE TSRMLS_CC); + if (!wrapper) { + continue; + } else if (wrapper != &php_plain_files_wrapper) { + if (wrapper->wops->url_stat) { + php_stream_statbuf ssb; + + if (SUCCESS == wrapper->wops->url_stat(wrapper, trypath, 0, &ssb, NULL TSRMLS_CC)) { + return estrdup(trypath); + } + } + continue; + } + } + if (tsrm_realpath(actual_path, resolved_path TSRMLS_CC)) { return estrdup(resolved_path); } } /* end provided path */ @@ -519,7 +554,27 @@ exec_fname_length + 1 + filename_length + 1 < MAXPATHLEN) { memcpy(trypath, exec_fname, exec_fname_length + 1); memcpy(trypath+exec_fname_length + 1, filename, filename_length+1); - if (tsrm_realpath(trypath, resolved_path TSRMLS_CC)) { + actual_path = trypath; + + /* Check for stream wrapper */ + for (p = trypath; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++); + if ((*p == ':') && (p - trypath > 1) && (p[1] == '/') && (p[2] == '/')) { + wrapper = php_stream_locate_url_wrapper(trypath, &actual_path, STREAM_OPEN_FOR_INCLUDE TSRMLS_CC); + if (!wrapper) { + return NULL; + } else if (wrapp
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/standard/tests/file fseek_dir_basic.phpt
janiThu Mar 27 10:45:03 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standard/tests/filefseek_dir_basic.phpt Log: - Fix test (readdir() does not sort the results..) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fseek_dir_basic.phpt?r1=1.1.4.2&r2=1.1.4.3&diff_format=u Index: php-src/ext/standard/tests/file/fseek_dir_basic.phpt diff -u php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.1.4.2 php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.1.4.3 --- php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.1.4.2Wed Mar 19 17:25:47 2008 +++ php-src/ext/standard/tests/file/fseek_dir_basic.phptThu Mar 27 10:45:03 2008 @@ -12,25 +12,28 @@ echo "call readdir():\n"; var_dump($dh = opendir($path)); -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +$files = array(); +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); +$files = array(); echo "\ncall fseek() on directory resource:\n"; var_dump(fseek($dh, 20)); echo "call readdir():\n"; -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); +$files = array(); echo "\ncall fseek() with different arguments on directory resource:\n"; var_dump(fseek($dh, 20, SEEK_END)); echo "call readdir():\n"; -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); delete_files($path, 3); closedir($dh); @@ -39,28 +42,55 @@ ?> --EXPECTF-- call readdir(): -resource(%d) of type (stream) -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +resource(12) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} call fseek() on directory resource: int(0) call readdir(): -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} call fseek() with different arguments on directory resource: int(0) call readdir(): -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} bool(true) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard/tests/file fseek_dir_basic.phpt
janiThu Mar 27 10:45:06 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard/tests/filefseek_dir_basic.phpt Log: MF53:- Fix test (readdir() does not sort the results..) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fseek_dir_basic.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u Index: php-src/ext/standard/tests/file/fseek_dir_basic.phpt diff -u php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.1.2.1 php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.1.2.2 --- php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.1.2.1Wed Mar 19 17:23:28 2008 +++ php-src/ext/standard/tests/file/fseek_dir_basic.phptThu Mar 27 10:45:06 2008 @@ -12,25 +12,28 @@ echo "call readdir():\n"; var_dump($dh = opendir($path)); -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +$files = array(); +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); +$files = array(); echo "\ncall fseek() on directory resource:\n"; var_dump(fseek($dh, 20)); echo "call readdir():\n"; -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); +$files = array(); echo "\ncall fseek() with different arguments on directory resource:\n"; var_dump(fseek($dh, 20, SEEK_END)); echo "call readdir():\n"; -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); delete_files($path, 3); closedir($dh); @@ -39,28 +42,55 @@ ?> --EXPECTF-- call readdir(): -resource(%d) of type (stream) -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +resource(12) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} call fseek() on directory resource: int(0) call readdir(): -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} call fseek() with different arguments on directory resource: int(0) call readdir(): -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} bool(true) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard credits_ext.h
andrey Thu Mar 27 14:48:00 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard credits_ext.h Log: Recreate http://cvs.php.net/viewvc.cgi/php-src/ext/standard/credits_ext.h?r1=1.30.2.6.2.6&r2=1.30.2.6.2.7&diff_format=u Index: php-src/ext/standard/credits_ext.h diff -u php-src/ext/standard/credits_ext.h:1.30.2.6.2.6 php-src/ext/standard/credits_ext.h:1.30.2.6.2.7 --- php-src/ext/standard/credits_ext.h:1.30.2.6.2.6 Sun Apr 29 00:43:11 2007 +++ php-src/ext/standard/credits_ext.h Thu Mar 27 14:48:00 2008 @@ -79,7 +79,7 @@ CREDIT_LINE("System V Semaphores", "Tom May"); CREDIT_LINE("System V Shared Memory", "Christian Cartus"); CREDIT_LINE("tidy", "John Coggeshall, Ilia Alshanetsky"); -CREDIT_LINE("tokenizer", "Andrei Zmievski"); +CREDIT_LINE("tokenizer", "Andrei Zmievski, Johannes Schlueter"); CREDIT_LINE("WDDX", "Andrei Zmievski"); CREDIT_LINE("XMLReader", "Rob Richards"); CREDIT_LINE("xmlrpc", "Dan Libby"); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/standard/tests/file fseek_dir_basic.phpt
janiThu Mar 27 15:06:16 2008 UTC Modified files: /php-src/ext/standard/tests/filefseek_dir_basic.phpt Log: MFB: fix test http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/fseek_dir_basic.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/standard/tests/file/fseek_dir_basic.phpt diff -u php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.2 php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.3 --- php-src/ext/standard/tests/file/fseek_dir_basic.phpt:1.2Wed Mar 19 17:26:36 2008 +++ php-src/ext/standard/tests/file/fseek_dir_basic.phptThu Mar 27 15:06:16 2008 @@ -12,25 +12,28 @@ echo "call readdir():\n"; var_dump($dh = opendir($path)); -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +$files = array(); +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); +$files = array(); echo "\ncall fseek() on directory resource:\n"; var_dump(fseek($dh, 20)); echo "call readdir():\n"; -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); +$files = array(); echo "\ncall fseek() with different arguments on directory resource:\n"; var_dump(fseek($dh, 20, SEEK_END)); echo "call readdir():\n"; -while( FALSE !== ($file = readdir($dh)) ) { - var_dump($file); -} +while( FALSE !== ($files[] = readdir($dh)) ) {} +sort($files); +var_dump($files); delete_files($path, 3); closedir($dh); @@ -39,55 +42,109 @@ ?> --EXPECTF-- call readdir(): -resource(%d) of type (stream) -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +resource(12) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} call fseek() on directory resource: int(0) call readdir(): -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} call fseek() with different arguments on directory resource: int(0) call readdir(): -string(1) "." -string(2) ".." -string(9) "file1.tmp" -string(9) "file2.tmp" -string(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} bool(true) --UEXPECTF-- call readdir(): -resource(%d) of type (stream) -unicode(1) "." -unicode(2) ".." -unicode(9) "file1.tmp" -unicode(9) "file2.tmp" -unicode(9) "file3.tmp" +resource(12) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + unicode(1) "." + [2]=> + unicode(2) ".." + [3]=> + unicode(9) "file1.tmp" + [4]=> + unicode(9) "file2.tmp" + [5]=> + unicode(9) "file3.tmp" +} call fseek() on directory resource: int(0) call readdir(): -unicode(1) "." -unicode(2) ".." -unicode(9) "file1.tmp" -unicode(9) "file2.tmp" -unicode(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + unicode(1) "." + [2]=> + unicode(2) ".." + [3]=> + unicode(9) "file1.tmp" + [4]=> + unicode(9) "file2.tmp" + [5]=> + unicode(9) "file3.tmp" +} call fseek() with different arguments on directory resource: int(0) call readdir(): -unicode(1) "." -unicode(2) ".." -unicode(9) "file1.tmp" -unicode(9) "file2.tmp" -unicode(9) "file3.tmp" +array(6) { + [0]=> + bool(false) + [1]=> + unicode(1) "." + [2]=> + unicode(2) ".." + [3]=> + unicode(9) "file1.tmp" + [4]=> + unicode(9) "file2.tmp" + [5]=> + unicode(9) "file3.tmp" +} bool(true) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_3) /ext/standard file.c
Can't you check with php_stream_supports_lock here wether the stream-wrapper supports locking? That requires an open stream. And why don't you raise the warning after opening the stream? There is this check anyway: if (flags & LOCK_EX && (!php_stream_supports_lock(stream) || php_stream_lock(stream, LOCK_EX))) { php_stream_close(stream); RETURN_FALSE; } On 27-Mar-08, at 3:15 AM, Benjamin Schulz wrote: regards, Benjamin On 27.03.2008, at 00:06, Ilia Alshanetsky wrote: iliaa Wed Mar 26 23:06:48 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standard file.c Log: Fixed bug #44501 (LOCK_EX mode in file_put_contents() is impropertly handled in combination with url wrappers) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/file.c?r1=1.409.2.6.2.28.2.9&r2=1.409.2.6.2.28.2.10&diff_format=u Index: php-src/ext/standard/file.c diff -u php-src/ext/standard/file.c:1.409.2.6.2.28.2.9 php-src/ext/ standard/file.c:1.409.2.6.2.28.2.10 --- php-src/ext/standard/file.c:1.409.2.6.2.28.2.9 Sun Feb 24 11:45:55 2008 +++ php-src/ext/standard/file.c Wed Mar 26 23:06:47 2008 @@ -21,7 +21,7 @@ + --+ */ -/* $Id: file.c,v 1.409.2.6.2.28.2.9 2008/02/24 11:45:55 felipe Exp $ */ +/* $Id: file.c,v 1.409.2.6.2.28.2.10 2008/03/26 23:06:47 iliaa Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -596,6 +596,13 @@ if (flags & PHP_FILE_APPEND) { mode[0] = 'a'; } else if (flags & LOCK_EX) { + /* check to make sure we are dealing with a regular file */ + if (php_memnstr(filename, "://", sizeof("://") - 1, filename + filename_len)) { + if (strncasecmp(filename, "file://", sizeof("file://") - 1)) { +php_error_docref(NULL TSRMLS_CC, E_WARNING, "Exclusive locks may only be set for regular files"); + RETURN_FALSE; + } + } mode[0] = 'c'; } mode[2] = '\0'; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php Ilia Alshanetsky -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS configure.in /main php_version.h
iliaa Thu Mar 27 22:44:03 2008 UTC Modified files: (Branch: PHP_5_2) /php-srcNEWS configure.in /php-src/main php_version.h Log: 5.2.6RC3 http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1124&r2=1.2027.2.547.2.1125&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.1124 php-src/NEWS:1.2027.2.547.2.1125 --- php-src/NEWS:1.2027.2.547.2.1124Thu Mar 20 16:49:41 2008 +++ php-src/NEWSThu Mar 27 22:44:02 2008 @@ -1,6 +1,6 @@ PHPNEWS ||| -?? Mar 2008 , PHP 5.2.6 +27 Mar 2008 , PHP 5.2.6RC3 - Properly address incomplete multibyte chars inside escapeshellcmd() (Ilia, Stefan Esser) - Fix integer overflow in printf(). (Stas, Maksymilian Aciemowicz) http://cvs.php.net/viewvc.cgi/php-src/configure.in?r1=1.579.2.52.2.89&r2=1.579.2.52.2.90&diff_format=u Index: php-src/configure.in diff -u php-src/configure.in:1.579.2.52.2.89 php-src/configure.in:1.579.2.52.2.90 --- php-src/configure.in:1.579.2.52.2.89Fri Mar 7 00:36:12 2008 +++ php-src/configure.inThu Mar 27 22:44:02 2008 @@ -1,4 +1,4 @@ -## $Id: configure.in,v 1.579.2.52.2.89 2008/03/07 00:36:12 iliaa Exp $ -*- autoconf -*- +## $Id: configure.in,v 1.579.2.52.2.90 2008/03/27 22:44:02 iliaa Exp $ -*- autoconf -*- dnl ## Process this file with autoconf to produce a configure script. divert(1) @@ -42,7 +42,7 @@ PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=2 PHP_RELEASE_VERSION=6 -PHP_EXTRA_VERSION="RC3-dev" +PHP_EXTRA_VERSION="RC3" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 1 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` http://cvs.php.net/viewvc.cgi/php-src/main/php_version.h?r1=1.112.2.37.2.61&r2=1.112.2.37.2.62&diff_format=u Index: php-src/main/php_version.h diff -u php-src/main/php_version.h:1.112.2.37.2.61 php-src/main/php_version.h:1.112.2.37.2.62 --- php-src/main/php_version.h:1.112.2.37.2.61 Fri Mar 7 00:36:12 2008 +++ php-src/main/php_version.h Thu Mar 27 22:44:02 2008 @@ -3,6 +3,6 @@ #define PHP_MAJOR_VERSION 5 #define PHP_MINOR_VERSION 2 #define PHP_RELEASE_VERSION 6 -#define PHP_EXTRA_VERSION "RC3-dev" -#define PHP_VERSION "5.2.6RC3-dev" +#define PHP_EXTRA_VERSION "RC3" +#define PHP_VERSION "5.2.6RC3" #define PHP_VERSION_ID 50206 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS configure.in /main php_version.h
iliaa Thu Mar 27 22:53:49 2008 UTC Modified files: (Branch: PHP_5_2) /php-srcNEWS configure.in /php-src/main php_version.h Log: Back to dev http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1125&r2=1.2027.2.547.2.1126&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.1125 php-src/NEWS:1.2027.2.547.2.1126 --- php-src/NEWS:1.2027.2.547.2.1125Thu Mar 27 22:44:02 2008 +++ php-src/NEWSThu Mar 27 22:53:49 2008 @@ -1,6 +1,8 @@ PHPNEWS ||| -27 Mar 2008 , PHP 5.2.6RC3 +?? Apr 2008, PHP 5.2.6 + +27 Mar 2008, PHP 5.2.6RC3 - Properly address incomplete multibyte chars inside escapeshellcmd() (Ilia, Stefan Esser) - Fix integer overflow in printf(). (Stas, Maksymilian Aciemowicz) http://cvs.php.net/viewvc.cgi/php-src/configure.in?r1=1.579.2.52.2.90&r2=1.579.2.52.2.91&diff_format=u Index: php-src/configure.in diff -u php-src/configure.in:1.579.2.52.2.90 php-src/configure.in:1.579.2.52.2.91 --- php-src/configure.in:1.579.2.52.2.90Thu Mar 27 22:44:02 2008 +++ php-src/configure.inThu Mar 27 22:53:49 2008 @@ -1,4 +1,4 @@ -## $Id: configure.in,v 1.579.2.52.2.90 2008/03/27 22:44:02 iliaa Exp $ -*- autoconf -*- +## $Id: configure.in,v 1.579.2.52.2.91 2008/03/27 22:53:49 iliaa Exp $ -*- autoconf -*- dnl ## Process this file with autoconf to produce a configure script. divert(1) @@ -42,7 +42,7 @@ PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=2 PHP_RELEASE_VERSION=6 -PHP_EXTRA_VERSION="RC3" +PHP_EXTRA_VERSION="RC4-dev" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 1 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` http://cvs.php.net/viewvc.cgi/php-src/main/php_version.h?r1=1.112.2.37.2.62&r2=1.112.2.37.2.63&diff_format=u Index: php-src/main/php_version.h diff -u php-src/main/php_version.h:1.112.2.37.2.62 php-src/main/php_version.h:1.112.2.37.2.63 --- php-src/main/php_version.h:1.112.2.37.2.62 Thu Mar 27 22:44:02 2008 +++ php-src/main/php_version.h Thu Mar 27 22:53:49 2008 @@ -3,6 +3,6 @@ #define PHP_MAJOR_VERSION 5 #define PHP_MINOR_VERSION 2 #define PHP_RELEASE_VERSION 6 -#define PHP_EXTRA_VERSION "RC3" -#define PHP_VERSION "5.2.6RC3" +#define PHP_EXTRA_VERSION "RC4-dev" +#define PHP_VERSION "5.2.6RC4-dev" #define PHP_VERSION_ID 50206 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php