From: Pierre Joye Date: Tue, 16 Jun 2009 16:50:13 +0000 (+0000) Subject: - fix readlink in TS SAPI X-Git-Tag: php-5.3.0RC4~33 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5a3efd5b78307dde3bfdde3dca812a0f6e190174;p=php - fix readlink in TS SAPI --- diff --git a/ext/standard/link_win32.c b/ext/standard/link_win32.c index b5caba36a3..078b7d18a3 100644 --- a/ext/standard/link_win32.c +++ b/ext/standard/link_win32.c @@ -63,6 +63,7 @@ PHP_FUNCTION(readlink) char *link; int link_len; TCHAR Path[MAXPATHLEN]; + char path_resolved[MAXPATHLEN]; HANDLE hFile; DWORD dwRet; @@ -89,14 +90,17 @@ PHP_FUNCTION(readlink) if (OPENBASEDIR_CHECKPATH(link)) { RETURN_FALSE; } - - hFile = CreateFile(link, // file to open - GENERIC_READ, // open for reading - FILE_SHARE_READ, // share for reading - NULL, // default security - OPEN_EXISTING, // existing file only - FILE_FLAG_BACKUP_SEMANTICS, // normal file - NULL); // no attr. template + if (!expand_filepath(link, path_resolved TSRMLS_CC)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "No such file or directory"); + RETURN_FALSE; + } + hFile = CreateFile(path_resolved, // file to open + GENERIC_READ, // open for reading + FILE_SHARE_READ, // share for reading + NULL, // default security + OPEN_EXISTING, // existing file only + FILE_FLAG_BACKUP_SEMANTICS, // normal file + NULL); // no attr. template if( hFile == INVALID_HANDLE_VALUE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not open file (error %d)", GetLastError());