From a6b40a6e8827a8eeddc645308c38ac0e9dd72a43 Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Tue, 16 Jun 2009 16:53:56 +0000 Subject: [PATCH] - MF53: fix readlink in TS SAPI --- ext/standard/link_win32.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ext/standard/link_win32.c b/ext/standard/link_win32.c index 12aa393715..6fa65caaa4 100644 --- a/ext/standard/link_win32.c +++ b/ext/standard/link_win32.c @@ -62,6 +62,7 @@ PHP_FUNCTION(readlink) char *link; int link_len; TCHAR Path[MAXPATHLEN]; + char path_resolved[MAXPATHLEN]; HANDLE hFile; DWORD dwRet; @@ -88,14 +89,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()); -- 2.50.1