delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2021/03/05/04:18:23

X-Recipient: archive-cygwin AT delorie DOT com
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 4DF4A3865488
Authentication-Results: sourceware.org;
dmarc=none (p=none dis=none) header.from=maxrnd.com
Authentication-Results: sourceware.org; spf=none smtp.mailfrom=mark AT maxrnd DOT com
Subject: Re: segfault on 32bit cygwin snapshot
To: cygwin AT cygwin DOT com
References: <9d7b9dc2-cb92-498b-7655-e9c618114c87 AT gmail DOT com>
<20210221072954 DOT db2dcbd523ed366e4dfcb0d0 AT nifty DOT ne DOT jp>
<7480c946-8e02-aba2-c06f-6b39f630699f AT gmail DOT com>
<20210301095546 DOT dce31a474bd0cec2c3518f87 AT nifty DOT ne DOT jp>
<20210301212542 DOT 8b1749f92af62c01b008f25a AT nifty DOT ne DOT jp>
<20210302200308 DOT 62db4fe01f78fb35a538784f AT nifty DOT ne DOT jp>
<YD5eXbxBWbUUSwcM AT calimero DOT vinschen DOT de>
<20210303185621 DOT b048287526901af6a4c8200a AT nifty DOT ne DOT jp>
<YD9sSea32T7GqlJr AT calimero DOT vinschen DOT de>
<e15e6d1f-7680-8f80-871e-0d224a3ed682 AT maxrnd DOT com>
<YEEGw4P+vtzejGOv AT calimero DOT vinschen DOT de>
From: Mark Geisert <mark AT maxrnd DOT com>
Message-ID: <00624789-7d57-4e80-26f0-a48e9893b6c9@maxrnd.com>
Date: Fri, 5 Mar 2021 01:18:08 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
Firefox/52.0 SeaMonkey/2.49.4
MIME-Version: 1.0
In-Reply-To: <YEEGw4P+vtzejGOv@calimero.vinschen.de>
X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS,
KAM_LAZY_DOMAIN_SECURITY, NICE_REPLY_A, SPF_HELO_NONE, SPF_NONE,
TXREP autolearn=no autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Errors-To: cygwin-bounces AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>

Hi Corinna,

Corinna Vinschen via Cygwin wrote:
> On Mar  4 01:05, Mark Geisert wrote:
>> Corinna Vinschen via Cygwin wrote:
>>> Is there a way around that?  I'm not quite sure, so let's brain storm
>>> a bit, ok?
>>>
>>> - One thing we could try is to remove the above code, but add a python
>>>     hack to dlsym instead.  This would let the "old" DLLs work again as
>>>     before and for python we could add a hack to dlsym, along these lines:
>>>
>>>       if (CYGWIN_VERSION_CHECK_FOR_UNAME_X
>>>       	&& modulehandle == cygwin1.dll
>>> 	&& strcmp (symname, "uname"))
>>>         symname = "uname_x";
>>>
>>> Thoughts?  Other ideas?
>>
>> That's a sly fix, but it seems that it would do the job.  That's good!
>>
>> On a different tack, I was thinking about how run time code could tell the
[...somewhat of a dead-end tangent elided...]
> However, it's not clear how this fixes the actual problem.  We just
> don't have a way to know what size the caller expects.
> 
> Having version or size info in structs like the Win32 API does in a
> couple of cases makes a lot more sense now...

Indeed.  I like your dlsym proposal, but I would code the "modulehandle == 
cygwin1.dll" first as it's less likely to be true than the version check.

I think "the above code" you mentioned still needs to be retained to deal with old 
exes calling uname directly and needing the old version.

Shall I write up a patch and submit it?
Thanks & Regards,

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019