This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Why /usr/bin/*.dll must be executable?


On 4/21/2012 5:21 AM, De-Jian Zhao wrote:
...
Then, what limitations does the Windows loader have?
As far as I know, there is no x bits for windows, right? How does the "chmod a-x" affect the file behavior under Windows if this is a Windows thing? I am completely confused. When I ran "chmod a-x *.dll", I assumed that these dll files were not executed directly under Cygwin or Windows; they were just some files storing the required functions or something; removing the x bits should not affect the behavior of Cygwin and Windows. If have run "chmod a-x" on the Windows system dll files, that will lead to the corruption of Windows, right? Thank God. I didn't do that.




--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

The term "Executable" is not limited to the files that are run directly. It rather shows that this file contains executable code, and in case of DLLs, this is almost always true (unless they are resource-only DLLs; note that sometimes unaware programmers create DLLs wich contain only resources, but fail to create proper resource-only DLLs, ant they still contain loading and unloading code).
Any code that may be executed (directly or indirectly) must have "x" under *nix. Windows had tried to make somewhat similar (with the same security concerns in mind) in its NT family, but it had to deal with file systems that have no notion of "executability" (FAT), so the notion was introduced in NTFS, but is not honored (thus, "execute" ACL permission is useless in Windows).
As Cygwin tries to emulate *nix, I suppose, it explicitly checks executable bit on loading files. So it's not correct to state that "this is completely Windows loader thing", but this thing is conceptually correct, so live with it.


--
Best regards, Mike.


-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]