- MF53: fix readlink in TS SAPI

This commit is contained in:
Pierre Joye 2009-06-16 16:53:56 +00:00
parent 4fc0630fa5
commit a6b40a6e88

View file

@ -62,6 +62,7 @@ PHP_FUNCTION(readlink)
char *link; char *link;
int link_len; int link_len;
TCHAR Path[MAXPATHLEN]; TCHAR Path[MAXPATHLEN];
char path_resolved[MAXPATHLEN];
HANDLE hFile; HANDLE hFile;
DWORD dwRet; DWORD dwRet;
@ -88,14 +89,17 @@ PHP_FUNCTION(readlink)
if (OPENBASEDIR_CHECKPATH(link)) { if (OPENBASEDIR_CHECKPATH(link)) {
RETURN_FALSE; RETURN_FALSE;
} }
if (!expand_filepath(link, path_resolved TSRMLS_CC)) {
hFile = CreateFile(link, // file to open php_error_docref(NULL TSRMLS_CC, E_WARNING, "No such file or directory");
GENERIC_READ, // open for reading RETURN_FALSE;
FILE_SHARE_READ, // share for reading }
NULL, // default security hFile = CreateFile(path_resolved, // file to open
OPEN_EXISTING, // existing file only GENERIC_READ, // open for reading
FILE_FLAG_BACKUP_SEMANTICS, // normal file FILE_SHARE_READ, // share for reading
NULL); // no attr. template NULL, // default security
OPEN_EXISTING, // existing file only
FILE_FLAG_BACKUP_SEMANTICS, // normal file
NULL); // no attr. template
if( hFile == INVALID_HANDLE_VALUE) { if( hFile == INVALID_HANDLE_VALUE) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not open file (error %d)", GetLastError()); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not open file (error %d)", GetLastError());