summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/ioutil.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/win32/ioutil.h b/win32/ioutil.h
index 8676fd5ac4..cc0f7ac1d3 100644
--- a/win32/ioutil.h
+++ b/win32/ioutil.h
@@ -424,11 +424,14 @@ __forceinline static int php_win32_ioutil_rename(const char *oldnamea, const cha
free(oldnamew);
SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETER);
return -1;
- } else if (!PHP_WIN32_IOUTIL_PATH_IS_OK_W(newnamew, wcslen(newnamew))) {
- free(oldnamew);
- free(newnamew);
- SET_ERRNO_FROM_WIN32_CODE(ERROR_ACCESS_DENIED);
- return -1;
+ } else {
+ size_t newnamew_len = wcslen(newnamew);
+ if (!PHP_WIN32_IOUTIL_PATH_IS_OK_W(newnamew, newnamew_len)) {
+ free(oldnamew);
+ free(newnamew);
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_ACCESS_DENIED);
+ return -1;
+ }
}
ret = php_win32_ioutil_rename_w(oldnamew, newnamew);