X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; q=dns; s=default; b=sBEPTsr3/xMrAVNW10XEOaVVcCXnJbb/Y+6hkCytFA4 P+gNATFnecv5rVvBxumaKgKMhRP0kFhqTDOCIZ6cnmU1csXiaguwmWisOEboRd6k m2eTOB6BJOq0ukc0+AyTl5VvDzfQlBNBh7jVX5mJAvWrC4sIl4g8JE/U9s/gL7j4 = DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; s=default; bh=brKhXkcU4+Ate7770uo1nJzGX1c=; b=niYzSO6byy//ooVtI +aS5aPAwBigrP8XOtRpQ9/lHIcsr1vDThZ8dTHpNLUCGAkrQ3naZJOBcAfZcqQGM 1fk9c3a01s67R6/PmDS1gyNO3ItyjDxr8c7OPxhzfOk/u/wsNhUBDZQ8KTAl8d09 RTbpSmYZamuvO6NQmIvPsxN/hM= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mailout08.t-online.de Message-ID: <544AB396.5060300@t-online.de> Date: Fri, 24 Oct 2014 22:16:22 +0200 From: Christian Franke User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26.1 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 1.7.33-0.1 References: <20141024110209 DOT GJ20607 AT calimero DOT vinschen DOT de> <25D5C8B8-57B7-449C-95C6-CD9055816B6B AT Denis-Excoffier DOT org> <20141024193638 DOT GO20607 AT calimero DOT vinschen DOT de> In-Reply-To: <20141024193638.GO20607@calimero.vinschen.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Corinna Vinschen wrote: > [Christian, please chime in] > > On Oct 24 20:41, Denis Excoffier wrote: >>> From Cygwin's POV {/usr}/bin is a system dir. For security reasons it >>> makes sense that the system DLLs in /bin cannot be overridden, unless >>> it's an installation issue which should be covered by looking into the >>> application installation dir first. >> Instead of adding the lookup of /usr/bin before the PATH, you could add >> it afterwards? > No. You don't expect this kind of flexibility in the Win32 API, do you? [The *LIBPATH variables from MS OS/2 (1987) never made it to Win API :-] > The way it works is, there's a call SetDllDirectory which replaces the "." > in the DLL search path with the directory given as argument. The search > order is always this: > > application dir > dir given in SetDllDirecory (Cygwin's bin) > system dirs > $PATH > >> Or do you mean that my use is bad practice for security >> reasons? That there might be some unexpected DLL somewhere in the PATH? >> IIRC, in linux/solaris, LD_LIBRARY_PATH is not honored when you are root, >> not otherwise. > Not quite. LD_LIBRARY_PATH is only ignored if the excutable is a > suid/sgid executable. Unfortunately we don't have LD_LIBRARY_PATH at > all when running execve (but we have in dlopen). > >>> Having said that, moving your DLLs into the application dir is really >>> not an option? >> Oh yes, i use it all the time. It is the job of 'make install' to also >> install the appropriate DLLs. The point here is for 'make check'. > Yeah. > > Sigh. > > I don't like the idea either that this simple change breaks existing > scenarios. I'm inclined to revert this change. > > Christian, would you mind terribly to re-add the tweak to postfix > to set $PATH? > No problem. Another possible solution: Check for e.g. CYGWIN_DLLPATH environment variable before calling SetDllDirectory(). If unset or empty, call SetDllDirectory("X:\path_to_cygwin\bin"); else if set to ".", do nothing. else call SetDllDirectory(CYGWIN_DLLPATH); The above 'make check' should then work again as 'CYGWIN_DLLPATH=. make check'. Possible enhancement: If AddDllDirectory() is available (>= Win8), accept a real search path in CYGWIN_DLLPATH. Christian -- 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