summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-05-17 13:35:42 +0200
committerAnatol Belski <ab@php.net>2017-05-17 13:35:42 +0200
commit02e9e59bebd793905a6d833413449515e9e42160 (patch)
tree6185f0c85d0258bcb91791da8f68c4a3cd5a91fb /win32
parent6e3d24bcf42413cc96875e8775e4cac769eb64aa (diff)
downloadphp-git-02e9e59bebd793905a6d833413449515e9e42160.tar.gz
improve error handling
Diffstat (limited to 'win32')
-rw-r--r--win32/ioutil.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/win32/ioutil.h b/win32/ioutil.h
index 1e781c665d..f0c1f53c76 100644
--- a/win32/ioutil.h
+++ b/win32/ioutil.h
@@ -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);