pajoye                                   Thu, 04 Feb 2010 09:21:02 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=294507

Log:
- [doc] #45986, bad file descriptor warning when rename is used with invalid 
path

Bug: http://bugs.php.net/45986 (unknown) 
      
Changed paths:
    _U  php/php-src/branches/PHP_5_3_2/
    _U  php/php-src/branches/PHP_5_3_2/ext/tidy/tests/
    U   php/php-src/branches/PHP_5_3_2/main/main.c
    U   php/php-src/branches/PHP_5_3_2/main/php.h
    U   php/php-src/branches/PHP_5_3_2/main/streams/plain_wrapper.c
    _U  
php/php-src/branches/PHP_5_3_2/tests/security/open_basedir_parse_ini_file.phpt


Property changes on: php/php-src/branches/PHP_5_3_2
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/php/php-src/branches/PHP_5_3:292504,292574,292594-292595,292611,292624,292630,292632-292635,292654,292677,292682-292683,292693,292716,292719,292762,292765,292771,292777,292823,293051,293075,293114,293126,293131,293144,293146,293152,293176,293180,293216,293235,293253,293268,293341,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293732,293762,293768,293804,293862,293897,293901-293902,293906,293965,293974,293985,293998,294040
/php/php-src/trunk:284726
   + 
/php/php-src/branches/PHP_5_3:292504,292574,292594-292595,292611,292624,292630,292632-292635,292654,292677,292682-292683,292693,292716,292719,292762,292765,292771,292777,292823,293051,293075,293114,293126,293131,293144,293146,293152,293176,293180,293216,293235,293253,293268,293341,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293732,293762,293768,293804,293862,293897,293901-293902,293906,293965,293974,293985,293998,294040,294053
/php/php-src/trunk:284726


Property changes on: php/php-src/branches/PHP_5_3_2/ext/tidy/tests
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/php/php-src/branches/PHP_5_3/ext/tidy/tests:292562,292566,292571,292574,292635,292716,292719,292765,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293732,293762,293768,293804,293862,293897,293901-293902,293906,293965,293985,293998,294040
/php/php-src/trunk/ext/tidy/tests:284726,287798-287941
   + 
/php/php-src/branches/PHP_5_3/ext/tidy/tests:292562,292566,292571,292574,292635,292716,292719,292765,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293732,293762,293768,293804,293862,293897,293901-293902,293906,293965,293985,293998,294040,294053
/php/php-src/trunk/ext/tidy/tests:284726,287798-287941

Modified: php/php-src/branches/PHP_5_3_2/main/main.c
===================================================================
--- php/php-src/branches/PHP_5_3_2/main/main.c  2010-02-04 09:17:20 UTC (rev 
294506)
+++ php/php-src/branches/PHP_5_3_2/main/main.c  2010-02-04 09:21:02 UTC (rev 
294507)
@@ -848,6 +848,27 @@
 }
 /* }}} */

+#ifdef PHP_WIN32
+#define PHP_WIN32_ERROR_MSG_BUFFER_SIZE 512
+PHPAPI void php_win32_docref2_from_error(DWORD error, const char *param1, 
const char *param2 TSRMLS_DC) {
+       if (error == 0) {
+               php_error_docref2(NULL TSRMLS_CC, param1, param2, E_WARNING, 
"%s", strerror(errno));
+       } else {
+               char buf[PHP_WIN32_ERROR_MSG_BUFFER_SIZE + 1];
+               int buf_len;
+
+               FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, buf, 
PHP_WIN32_ERROR_MSG_BUFFER_SIZE, NULL);
+               buf_len = strlen(buf);
+               if (buf_len >= 2) {
+                       buf[buf_len - 1] = '\0';
+                       buf[buf_len - 2] = '\0';
+               }
+               php_error_docref2(NULL TSRMLS_CC, param1, param2, E_WARNING, 
"%s (code: %lu)", (char *)buf, error);
+       }
+}
+#undef PHP_WIN32_ERROR_MSG_BUFFER_SIZE
+#endif
+
 /* {{{ php_html_puts */
 PHPAPI void php_html_puts(const char *str, uint size TSRMLS_DC)
 {

Modified: php/php-src/branches/PHP_5_3_2/main/php.h
===================================================================
--- php/php-src/branches/PHP_5_3_2/main/php.h   2010-02-04 09:17:20 UTC (rev 
294506)
+++ php/php-src/branches/PHP_5_3_2/main/php.h   2010-02-04 09:21:02 UTC (rev 
294507)
@@ -309,6 +309,8 @@
        PHP_ATTRIBUTE_FORMAT(printf, PHP_ATTR_FMT_OFFSET + 4, 
PHP_ATTR_FMT_OFFSET + 5);
 PHPAPI void php_error_docref2(const char *docref TSRMLS_DC, const char 
*param1, const char *param2, int type, const char *format, ...)
        PHP_ATTRIBUTE_FORMAT(printf, PHP_ATTR_FMT_OFFSET + 5, 
PHP_ATTR_FMT_OFFSET + 6);
+PHPAPI void php_win32_docref2_from_error(DWORD error, const char *param1, 
const char *param2 TSRMLS_DC);
+
 END_EXTERN_C()

 #define php_error_docref php_error_docref0

Modified: php/php-src/branches/PHP_5_3_2/main/streams/plain_wrapper.c
===================================================================
--- php/php-src/branches/PHP_5_3_2/main/streams/plain_wrapper.c 2010-02-04 
09:17:20 UTC (rev 294506)
+++ php/php-src/branches/PHP_5_3_2/main/streams/plain_wrapper.c 2010-02-04 
09:21:02 UTC (rev 294507)
@@ -1080,12 +1080,13 @@
        ret = VCWD_RENAME(url_from, url_to);

        if (ret == -1) {
-#ifdef EXDEV
+#ifndef PHP_WIN32
+# ifdef EXDEV
                if (errno == EXDEV) {
                        struct stat sb;
                        if (php_copy_file(url_from, url_to TSRMLS_CC) == 
SUCCESS) {
                                if (VCWD_STAT(url_from, &sb) == 0) {
-#if !defined(TSRM_WIN32) && !defined(NETWARE)
+#  if !defined(TSRM_WIN32) && !defined(NETWARE)
                                        if (VCWD_CHMOD(url_to, sb.st_mode)) {
                                                if (errno == EPERM) {
                                                        php_error_docref2(NULL 
TSRMLS_CC, url_from, url_to, E_WARNING, "%s", strerror(errno));
@@ -1104,7 +1105,7 @@
                                                php_error_docref2(NULL 
TSRMLS_CC, url_from, url_to, E_WARNING, "%s", strerror(errno));
                                                return 0;
                                        }
-#endif
+#  endif
                                        VCWD_UNLINK(url_from);
                                        return 1;
                                }
@@ -1112,8 +1113,14 @@
                        php_error_docref2(NULL TSRMLS_CC, url_from, url_to, 
E_WARNING, "%s", strerror(errno));
                        return 0;
                }
+# endif
 #endif
+
+#ifdef PHP_WIN32
+               php_win32_docref2_from_error(GetLastError(), url_from, url_to 
TSRMLS_CC);
+#else
                php_error_docref2(NULL TSRMLS_CC, url_from, url_to, E_WARNING, 
"%s", strerror(errno));
+#endif
         return 0;
        }



Property changes on: 
php/php-src/branches/PHP_5_3_2/tests/security/open_basedir_parse_ini_file.phpt
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/php/php-src/branches/PHP_5_3/tests/security/open_basedir_parse_ini_file.phpt:292562,292566,292571,292574,292716,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293732,293762,293768,293804,293862,293897,293901-293902,293906,293965,293985,293998,294040
/php/php-src/trunk/tests/security/open_basedir_parse_ini_file.phpt:265951
   + 
/php/php-src/branches/PHP_5_3/tests/security/open_basedir_parse_ini_file.phpt:292562,292566,292571,292574,292716,293146,293152,293176,293180,293216,293235,293253,293380,293400,293442,293447,293466,293487,293502,293538,293548,293558,293588,293590,293597,293627,293644,293653,293655,293699,293726-293728,293732,293762,293768,293804,293862,293897,293901-293902,293906,293965,293985,293998,294040,294053
/php/php-src/trunk/tests/security/open_basedir_parse_ini_file.phpt:265951

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to