delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
X-SWARE-Spam-Status: | No, hits=4.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW |
X-Spam-Check-By: | sourceware.org |
Received-SPF: | pass (google.com: domain of nick DOT lowe AT gmail DOT com designates 10.52.27.10 as permitted sender) client-ip=10.52.27.10; |
Authentication-Results: | mr.google.com; spf=pass (google.com: domain of nick DOT lowe AT gmail DOT com designates 10.52.27.10 as permitted sender) smtp.mail=nick DOT lowe AT gmail DOT com; dkim=pass header.i=nick DOT lowe AT gmail DOT com |
MIME-Version: | 1.0 |
In-Reply-To: | <CADSoG1so=3KxR5TS6mVNRhZGkdUku42Y=S3eWV0dtDgiZE8Tww@mail.gmail.com> |
References: | <CADSoG1so=3KxR5TS6mVNRhZGkdUku42Y=S3eWV0dtDgiZE8Tww AT mail DOT gmail DOT com> |
Date: | Tue, 21 Feb 2012 08:59:25 +0000 |
Message-ID: | <CADSoG1uVEpxOSxAm2ZtbzE9oh95TcAQYkj_YRAZxP0tL8-3uDQ@mail.gmail.com> |
Subject: | shared_info::init_obcaseinsensitive implemented incorrectly |
From: | Nick Lowe <nick DOT lowe AT gmail DOT com> |
To: | cygwin AT cygwin DOT com |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Unsubscribe: | <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Dear Cygwin Developers, shared_info::init_obcaseinsensitive in shared.cc has, in my opinion, been implemented incorrectly. The value of the obcaseinsensitive value in the registry only represents how the object manager will be on next reboot and not its present state. Cygwin uses it as if it represents the present state, however. This is likely to be true, but is not guaranteed to be. To determine the present state, first get the system root path via either: 1) Querying the %SystemRoot% environment variable via RtlExpandEnvironmentStrings_U and change it with RtlDosPathNameToNtPathName_U (alternatively RtlDosPathNameToNtPathName_U_WithStatus in Vista and later). 2) Querying the symbolic link target of \SystemRoot via NtQuerySymbolicLinkObject. (Requires administrative rights.) Then, check for existence of the uppercase form of the path with NtQueryAttributesFile ensuring, obviously, that the OBJ_CASE_INSENSITIVE flag is not set. If the the NTSTATUS value is successful, the object manager is running with case insensitivity, if not its running with case sensitivity. With regards, Nick Lowe -- 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
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |