diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c index a9fbd5667cb8d..94183e3724c47 100644 --- a/Zend/zend_virtual_cwd.c +++ b/Zend/zend_virtual_cwd.c @@ -1418,7 +1418,7 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int li int ret; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, filename, NULL, link ? CWD_EXPAND : CWD_REALPATH)) { CWD_STATE_FREE_ERR(&new_state); return -1; } diff --git a/ext/standard/tests/file/bug74357.phpt b/ext/standard/tests/file/bug74357.phpt new file mode 100644 index 0000000000000..ebef650bb6447 --- /dev/null +++ b/ext/standard/tests/file/bug74357.phpt @@ -0,0 +1,32 @@ +--TEST-- +Bug #74357 (lchown fails to change ownership of symlink with ZTS) +--SKIPIF-- + +--FILE-- + +--CLEAN-- + +--EXPECT-- +int(1000) diff --git a/ext/standard/tests/skipif_no_root.inc b/ext/standard/tests/skipif_no_root.inc new file mode 100644 index 0000000000000..ef60c14745ba6 --- /dev/null +++ b/ext/standard/tests/skipif_no_root.inc @@ -0,0 +1,16 @@ +