summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/ioutil.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/win32/ioutil.h b/win32/ioutil.h
index d2e8239075..2a02d52c51 100644
--- a/win32/ioutil.h
+++ b/win32/ioutil.h
@@ -437,16 +437,17 @@ __forceinline static char *php_win32_ioutil_getcwd(char *buf, int len)
free(tmp_bufa);
SET_ERRNO_FROM_WIN32_CODE(ERROR_BAD_LENGTH);
return NULL;
- } else if (tmp_bufa_len + 1 > len) {
- free(tmp_bufa);
- SET_ERRNO_FROM_WIN32_CODE(ERROR_INSUFFICIENT_BUFFER);
- return NULL;
}
if (!buf) {
/* If buf was NULL, the result has to be freed outside here. */
buf = tmp_bufa;
} else {
+ if (tmp_bufa_len + 1 > len) {
+ free(tmp_bufa);
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INSUFFICIENT_BUFFER);
+ return NULL;
+ }
memmove(buf, tmp_bufa, tmp_bufa_len + 1);
free(tmp_bufa);
}