(Andrey)
- Improved support for is_link and related functions on Windows. (Pierre)
+- Implemented symbolic links support for open_basedir checks. (Pierre)
- Implemented FR #51804, SplFileInfo::getLinkTarget on Windows. (Pierre)
- Fixed symbolic resolution support when the target is a DFS share. (Pierre)
- Firebird and SNMP support are no longer available on Windows. Firebird support
may be reintroduced in the future.
+=====================
+11.1 New in PHP 5.3.4
+=====================
+
+- open_basedir supports now symbolic links (checks the target).
+- is_link and SplFileInfo symbolic links related method are now fully supported
+ (on Windows Vista or later).
+
===================
12. New in PHP 5.3:
===================
memcpy(path_tmp, resolved_name, path_len + 1); /* safe */
while (VCWD_REALPATH(path_tmp, resolved_name) == NULL) {
-#ifdef HAVE_SYMLINK
- if (nesting_level == 0) {
- int ret;
- char buf[MAXPATHLEN];
-
- ret = readlink(path_tmp, buf, MAXPATHLEN - 1);
- if (ret < 0) {
- /* not a broken symlink, move along.. */
- } else {
- /* put the real path into the path buffer */
- memcpy(path_tmp, buf, ret);
- path_tmp[ret] = '\0';
+#if defined(PHP_WIN32) || defined(HAVE_SYMLINK)
+#if defined(PHP_WIN32)
+ if (EG(windows_version_info).dwMajorVersion > 5) {
+#endif
+ if (nesting_level == 0) {
+ int ret;
+ char buf[MAXPATHLEN];
+
+ ret = php_sys_readlink(path_tmp, buf, MAXPATHLEN - 1);
+ if (ret < 0) {
+ /* not a broken symlink, move along.. */
+ } else {
+ /* put the real path into the path buffer */
+ memcpy(path_tmp, buf, ret);
+ path_tmp[ret] = '\0';
+ }
}
+#if defined(PHP_WIN32)
}
#endif
+#endif
#if defined(PHP_WIN32) || defined(NETWARE)
path_file = strrchr(path_tmp, DEFAULT_SLASH);