Re: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS

From: Date: Fri, 10 Nov 2006 15:23:05 +0000
Subject: Re: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS
References: 1  Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-5388@lists.php.net to get a copy of this message
Hi Dmitry, Glad to see your commits :)
+ buf->st_uid = buf->st_gid = buf->st_ino = 0; + buf->st_mode = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? (S_IFDIR|S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)) : S_IFREG; + buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE>>6)); + if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) { + int len = strlen(path); + + if (path[len-4] == '.') { + if (_memicmp(path+len-3, "exe", 3) == 0 ||
+     _memicmp(path+len-3, "com", 3) == 0 ||
+     _memicmp(path+len-3, "bat", 3) == 0 ||
+     _memicmp(path+len-3, "cmd", 3) == 0) {
+ buf->st_mode |= (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)); + } + } + }
This logic is correct with FAT, but probably not with NTFS as NTFS supports an execute attribute, which you aren't using here. Also, you are giving the same permissions for owner/group/user, but again, with NTFS this is not true at all. However I navigated through the MSDN site and I couldn't find any function to retrieve these NTFS attributes. Anyway, I hope you understand my point. Nuno

« previous php.zend-engine.cvs (#5388) next »