summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2015-11-05 11:58:44 +0100
committerAnatol Belski <ab@php.net>2015-11-05 14:46:23 +0100
commit9968129831ab0eaf92841336dc1bd6049f711d4a (patch)
tree5e38c2788855b24210e51bed2c791ac62ec8c55d
parentdea14fc70782aa7c622a0ef5af9b163f042c05f9 (diff)
downloadphp-git-9968129831ab0eaf92841336dc1bd6049f711d4a.tar.gz
don't get invalid chmod mode through
-rw-r--r--Zend/zend_virtual_cwd.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c
index 99c3f3003d..fedd0a22ad 100644
--- a/Zend/zend_virtual_cwd.c
+++ b/Zend/zend_virtual_cwd.c
@@ -1566,6 +1566,20 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode) /* {{{ */
return -1;
}
+#ifdef ZEND_WIN32
+ {
+ mode_t _tmp = mode;
+
+ mode = 0;
+
+ if (_tmp & _S_IREAD) {
+ mode |= _S_IREAD;
+ }
+ if (_tmp & _S_IWRITE) {
+ mode |= _S_IWRITE;
+ }
+ }
+#endif
ret = chmod(new_state.cwd, mode);
CWD_STATE_FREE_ERR(&new_state);