]> granicus.if.org Git - php/commitdiff
improve error handling
authorAnatol Belski <ab@php.net>
Wed, 17 May 2017 11:35:42 +0000 (13:35 +0200)
committerAnatol Belski <ab@php.net>
Wed, 17 May 2017 11:35:42 +0000 (13:35 +0200)
win32/ioutil.h

index 1e781c665d854e86c28368812c61685c051177c5..f0c1f53c76a88b39c7615250164428a3fe0383a0 100644 (file)
@@ -244,7 +244,9 @@ __forceinline static int php_win32_ioutil_access(const char *path, mode_t mode)
        PHP_WIN32_IOUTIL_CHECK_PATH_W(pathw, -1, 1)
 
        ret = _waccess(pathw, mode);
-       _get_errno(&err);
+       if (0 > ret) {
+               _get_errno(&err);
+       }
        PHP_WIN32_IOUTIL_CLEANUP_W()
 
        if (0 > ret) {
@@ -277,7 +279,9 @@ __forceinline static int php_win32_ioutil_open(const char *path, int flags, ...)
        }
 
        ret = php_win32_ioutil_open_w(pathw, flags, mode);
-       err = GetLastError();
+       if (0 > ret) {
+               err = GetLastError();
+       }
        PHP_WIN32_IOUTIL_CLEANUP_W()
 
        if (0 > ret) {
@@ -366,7 +370,9 @@ __forceinline static FILE *php_win32_ioutil_fopen(const char *patha, const char
        }
 
        ret = _wfopen(pathw, modew);
-       _get_errno(&err);
+       if (!ret) {
+               _get_errno(&err);
+       }
        free(pathw);
        free(modew);
 
@@ -403,7 +409,9 @@ __forceinline static int php_win32_ioutil_rename(const char *oldnamea, const cha
        }
 
        ret = php_win32_ioutil_rename_w(oldnamew, newnamew);
-       err = GetLastError();
+       if (0 > ret) {
+               err = GetLastError();
+       }
 
        free(oldnamew);
        free(newnamew);
@@ -427,7 +435,9 @@ __forceinline static int php_win32_ioutil_chdir(const char *patha)
        }
 
        ret = php_win32_ioutil_chdir_w(pathw);
-       err = GetLastError();
+       if (0 > ret) {
+               err = GetLastError();
+       }
 
        free(pathw);
 
@@ -493,7 +503,9 @@ __forceinline static int php_win32_ioutil_chmod(const char *patha, int mode)
        PHP_WIN32_IOUTIL_CHECK_PATH_W(pathw, -1, 1)
 
        ret = _wchmod(pathw, mode);
-       _get_errno(&err);
+       if (0 > ret) {
+               _get_errno(&err);
+       }
 
        free(pathw);