delorie.com/archives/browse.cgi | search |
DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 4B7NEFXJ221626 |
Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com |
Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 4B7NEFXJ221626 |
Authentication-Results: | delorie.com; |
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=PI0n5n6J | |
X-Recipient: | archive-cygwin AT delorie DOT com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 40175385842C |
DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
s=default; t=1733613253; | |
bh=oQLvvwP0WkMQjzYvcecds1uq8VuOc3LnU9zoXtOF7go=; | |
h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe: | |
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: | |
From; | |
b=PI0n5n6J4FuHru2TBUDXK8uobyAi2VujczAPN2LYC6zOa1bnWgI6Nhc3iPgejXdap | |
VKm0ibFp3F4lPRWztVARVEFtrpFF5Kd0m4Op09sBEkkI1gxiGBOBbAFtA0rz4DdDVA | |
O9i3aQdZDYRszdE6snXfc1bMLoB4RZwv9CzzRCM8= | |
X-Original-To: | cygwin AT cygwin DOT com |
Delivered-To: | cygwin AT cygwin DOT com |
DMARC-Filter: | OpenDMARC Filter v1.4.2 sourceware.org 653AA3858CDB |
ARC-Filter: | OpenARC Filter v1.0.0 sourceware.org 653AA3858CDB |
ARC-Seal: | i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1733613224; cv=none; |
b=B0VsSJDHKgrVQqZyJPhCeCcr2/cuzXSUM4Qa9sTlClrrYQQ/4jKkeGiIt//W8RslRA+XVRjt9ZqABhWk6L4JgbT6WAISx5CEvKicZ2TNJoLyJ7ZfOuLU15nFHKxj12hShNrmQ/JngUcG9b4oAYP49fXEHc4+dmmIcpsI/Ew+XPU= | |
ARC-Message-Signature: | i=1; a=rsa-sha256; d=sourceware.org; s=key; |
t=1733613224; c=relaxed/simple; | |
bh=tcDPztHXJJM5ccKRyvBJJLRyopPFcmQYmdNYKi+y6UI=; | |
h=Date:From:To:Subject:Message-Id:Mime-Version:DKIM-Signature; | |
b=Zkdpr/Cc2JJX/oVzzg+BpatbcAgIVNKDb1/uUvcoljQePYv0PgoB+2bPR02wtaUsgWdg50sclnU8oSL9xh58JLOkIwouOWslL8zApD5yL9UTGX38mFlA80WMGorzw8wbE1MRvKM+Nu13KoscunBIevZh9nq9PIzDleGZ7WrvKGU= | |
ARC-Authentication-Results: | i=1; server2.sourceware.org |
DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 653AA3858CDB |
Date: | Sun, 8 Dec 2024 08:13:38 +0900 |
To: | cygwin AT cygwin DOT com |
Subject: | Re: SMBFS mount's file cannot be made executable |
Message-Id: | <20241208081338.e097563889a03619fc467930@nifty.ne.jp> |
In-Reply-To: | <Zzz7FJim9kIiqjyy@calimero.vinschen.de> |
References: | <20241112175427 DOT 750ae77a8086594a765862c5 AT nifty DOT ne DOT jp> |
<ZzNCXz3o9k40U9zA AT calimero DOT vinschen DOT de> | |
<20241113181755 DOT 02289e8e8d9af7e19e8f4387 AT nifty DOT ne DOT jp> | |
<CANV9t=SvYedzG-LmECwdT7kjipOyhgwsZ1yucnTm8mWMnNkJVw AT mail DOT gmail DOT com> | |
<20241114003740 DOT e573d7ec79d35da76225c9f1 AT nifty DOT ne DOT jp> | |
<CANV9t=TLh8xD7KBsF-MucZWNjP-L0KE04xUv2-2e=Z5fXTjk=w AT mail DOT gmail DOT com> | |
<20241114010807 DOT 99f46760b2240d472440c329 AT nifty DOT ne DOT jp> | |
<20241116002122 DOT 3f4fd325a497eb4261ad80f4 AT nifty DOT ne DOT jp> | |
<ZztqpBESgcTXcd3d AT calimero DOT vinschen DOT de> | |
<20241119175806 DOT 321cdb7e65a727a2eb58c8a6 AT nifty DOT ne DOT jp> | |
<Zzz7FJim9kIiqjyy AT calimero DOT vinschen DOT de> | |
X-Mailer: | Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) |
Mime-Version: | 1.0 |
X-BeenThere: | cygwin AT cygwin DOT com |
X-Mailman-Version: | 2.1.30 |
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> | |
From: | Takashi Yano via Cygwin <cygwin AT cygwin DOT com> |
Reply-To: | Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp> |
Errors-To: | cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com |
Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> |
This is a multi-part message in MIME format. --Multipart=_Sun__8_Dec_2024_08_13_38_+0900_AsYZLcTaqjLbIIQV Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 19 Nov 2024 21:54:44 +0100 Corinna Vinschen wrote: > On Nov 19 17:58, Takashi Yano via Cygwin wrote: > > On Mon, 18 Nov 2024 17:26:12 +0100 > > Corinna Vinschen wrote: > > > We can safely assume that the current user is already authorized on the > > > SMB server. So... shouldn't AuthzInitializeResourceManager be > > > sufficient and the code from class authz_ctx already does what we want? > > > We may just have to use in in place of calling NtCheckAccess(), > > > maybe with a tweak or two... > > > > I already tried AuthzInitializeResourceManager(), but the result > > was the same with current implementation... > > So you tried to call authz_get_user_attribute()? Yes. But resulted in the same. > > BTW, I come up with another implementation. This make the things > > much simpler. What do you think of the patch attached? > > > [...] > > int > > check_file_access (path_conv &pc, int flags, bool effective) > > { > > @@ -711,10 +618,14 @@ check_file_access (path_conv &pc, int flags, bool effective) > > desired |= FILE_EXECUTE; > > if (!get_file_sd (pc.handle (), pc, sd, false)) > > { > > - /* Tweak Samba security descriptor as necessary. */ > > - if (pc.fs_is_samba ()) > > - convert_samba_sd (sd); > > - ret = check_access (sd, file_mapping, desired, flags, effective); > > + HANDLE h = CreateFileW (pc.get_nt_native_path ()->Buffer, desired, > > + 0, NULL, OPEN_EXISTING, > > + FILE_FLAG_BACKUP_SEMANTICS, NULL); > > + if (h != INVALID_HANDLE_VALUE) > > + { > > + CloseHandle (h); > > + ret = 0; > > + } > > } > > debug_printf ("flags %y, ret %d", flags, ret); > > return ret; > > No, we can't do that, it's too simple. > > Just kidding. > > This is so simple, I'm puzzled we never tried that before. Or, if we > did, it's a loooong time ago... > > If we really do this, we don't even need to call get_file_sd(). And it > should use NtOpenFile and reopen semantics i.e. pc.init_reopen_attr(). > Also, the sharing flags should allow all access. And the `effective' > argument needs to be taken into account. I have a question. What pc.init_reopen_attr() is for? I tested with pc.get_object_attr() instead, it works. What handle should I pass to pc.init_reopen_attr()? Anyway, I revised the patch as attached. What do you think? -- Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp> --Multipart=_Sun__8_Dec_2024_08_13_38_+0900_AsYZLcTaqjLbIIQV Content-Type: text/plain; name="0001-Cygwin-access-Correction-for-samba-SMB-share.patch" Content-Disposition: attachment; filename="0001-Cygwin-access-Correction-for-samba-SMB-share.patch" Content-Transfer-Encoding: base64 RnJvbSA3NzdiZGY3NTUyN2YzNTNhYzgzMzE3YTgyZTM4Nzk0MjA2YmI2ZGQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KRnJvbTogVGFrYXNoaSBZYW5vIDx0YWthc2hpLnlhbm9AbmlmdHkubmUu anA+DQpEYXRlOiBTdW4sIDggRGVjIDIwMjQgMDc6MzQ6NDggKzA5MDANClN1YmplY3Q6IFtQQVRD SF0gQ3lnd2luOiBhY2Nlc3M6IENvcnJlY3Rpb24gZm9yIHNhbWJhL1NNQiBzaGFyZQ0KDQpQcmV2 aW91c2x5LCBhY2Nlc3MoKSBhbmQgZWFjY2VzcygpIGRvZXMgbm90IGRldGVybWluZSB0aGUgcGVy bWlzc2lvbnMNCmZvciBmaWxlcyBvbiBzYW1iYS9TTUIgc2hhcmUuIEV2ZW4gaWYgdGhlIHVzZXIg bG9ncy1pbiBhcyB0aGUgb3duZXINCm9mIHRoZSBmaWxlLCBhY2Nlc3MoKSBhbmQgZWFjY2Vzcygp IHJlZmVyZXMgdG8gb3RoZXJzJyBwZXJtaXNzaW9ucy4NCldpdGggdGhpcyBwYXRjaCwgdG8gZGV0 ZXJtaW5lIHRoZSBwZXJtaXNzaW9ucyBjb3JyZWN0bHksIE50T3BlbkZpbGUoKQ0Kd2l0aCBkZXNp cmVkIGFjY2VzcyBtYXNrIGlzIHVzZWQuDQoNCkZpeGVzOiBjZjc2MmIwOGNmYjAgKCIqIHNlY3Vy aXR5LmNjIChjaGVja19maWxlX2FjY2Vzcyk6IENyZWF0ZS4iKQ0KUmV2aWV3ZWQtYnk6IENvcmlu bmEgVmluc2NoZW4gPGNvcmlubmFAdmluc2NoZW4uZGU+DQpTaWduZWQtb2ZmLWJ5OiBUYWthc2hp IFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5qcD4NCi0tLQ0KIHdpbnN1cC9jeWd3aW4vc2Vj L2Jhc2UuY2MgfCAxMzYgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAx IGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgOTkgZGVsZXRpb25zKC0pDQoNCmRpZmYg LS1naXQgYS93aW5zdXAvY3lnd2luL3NlYy9iYXNlLmNjIGIvd2luc3VwL2N5Z3dpbi9zZWMvYmFz ZS5jYw0KaW5kZXggZDVlMzlkMjgxLi5mY2M1ZTFmZjcgMTAwNjQ0DQotLS0gYS93aW5zdXAvY3ln d2luL3NlYy9iYXNlLmNjDQorKysgYi93aW5zdXAvY3lnd2luL3NlYy9iYXNlLmNjDQpAQCAtMjgs MTAgKzI4LDYgQEAgZGV0YWlscy4gKi8NCiAJCQkJICB8IEdST1VQX1NFQ1VSSVRZX0lORk9STUFU SU9OIFwNCiAJCQkJICB8IE9XTkVSX1NFQ1VSSVRZX0lORk9STUFUSU9OKQ0KIA0KLXN0YXRpYyBH RU5FUklDX01BUFBJTkcgTk9fQ09QWV9STyBmaWxlX21hcHBpbmcgPSB7IEZJTEVfR0VORVJJQ19S RUFELA0KLQkJCQkJCSAgIEZJTEVfR0VORVJJQ19XUklURSwNCi0JCQkJCQkgICBGSUxFX0dFTkVS SUNfRVhFQ1VURSwNCi0JCQkJCQkgICBGSUxFX0FMTF9BQ0NFU1MgfTsNCiBMT05HDQogZ2V0X2Zp bGVfc2QgKEhBTkRMRSBmaCwgcGF0aF9jb252ICZwYywgc2VjdXJpdHlfZGVzY3JpcHRvciAmc2Qs DQogCSAgICAgYm9vbCBqdXN0Y3JlYXRlZCkNCkBAIC02MDgsOTkgKzYwNCw5IEBAIGNoZWNrX2Fj Y2VzcyAoc2VjdXJpdHlfZGVzY3JpcHRvciAmc2QsIEdFTkVSSUNfTUFQUElORyAmbWFwcGluZywN CiAgIHJldHVybiByZXQ7DQogfQ0KIA0KLS8qIFNhbWJhIG92ZXJyaWRlLiAgQ2hlY2sgc2VjdXJp dHkgZGVzY3JpcHRvciBmb3IgU2FtYmEgVU5JWCB1c2VyIGFuZCBncm91cA0KLSAgIGFjY291bnRz IGFuZCBjaGVjayBpZiB3ZSBoYXZlIGFuIFJGQyAyMzA3IG1hcHBpbmcgdG8gYSBXaW5kb3dzIGFj Y291bnQuDQotICAgQ3JlYXRlIGEgbmV3IHNlY3VyaXR5IGRlc2NyaXB0b3Igd2l0aCBhbGwgb2Yg dGhlIFVOSVggYWNjb3VudHMgd2l0aA0KLSAgIHZhbGlkIG1hcHBpbmcgcmVwbGFjZWQgd2l0aCB0 aGVpciBXaW5kb3dzIGNvdW50ZXJwYXJ0LiAqLw0KLXN0YXRpYyB2b2lkDQotY29udmVydF9zYW1i YV9zZCAoc2VjdXJpdHlfZGVzY3JpcHRvciAmc2RfcmV0KQ0KLXsNCi0gIE5UU1RBVFVTIHN0YXR1 czsNCi0gIEJPT0xFQU4gZHVtbXk7DQotICBQU0lEIHNpZDsNCi0gIGN5Z3NpZCBvd25lcjsNCi0g IGN5Z3NpZCBncm91cDsNCi0gIFNFQ1VSSVRZX0RFU0NSSVBUT1Igc2Q7DQotICBjeWdfbGRhcCBj bGRhcDsNCi0gIHRtcF9wYXRoYnVmIHRwOw0KLSAgUEFDTCBhY2wsIG9hY2w7DQotICBzaXplX3Qg YWNsX2xlbjsNCi0gIFBBQ0NFU1NfQUxMT1dFRF9BQ0UgYWNlOw0KLQ0KLSAgaWYgKCFOVF9TVUND RVNTIChSdGxHZXRPd25lclNlY3VyaXR5RGVzY3JpcHRvciAoc2RfcmV0LCAmc2lkLCAmZHVtbXkp KSkNCi0gICAgcmV0dXJuOw0KLSAgb3duZXIgPSBzaWQ7DQotICBpZiAoIU5UX1NVQ0NFU1MgKFJ0 bEdldEdyb3VwU2VjdXJpdHlEZXNjcmlwdG9yIChzZF9yZXQsICZzaWQsICZkdW1teSkpKQ0KLSAg ICByZXR1cm47DQotICBncm91cCA9IHNpZDsNCi0NCi0gIGlmIChzaWRfaWRfYXV0aCAob3duZXIp ID09IDIyKQ0KLSAgICB7DQotICAgICAgc3RydWN0IHBhc3N3ZCAqcHdkOw0KLSAgICAgIHVpZF90 IHVpZCA9IG93bmVyLmdldF91aWQgKCZjbGRhcCk7DQotICAgICAgaWYgKHVpZCA8IFVOSVhfUE9T SVhfT0ZGU0VUICYmIChwd2QgPSBpbnRlcm5hbF9nZXRwd3VpZCAodWlkKSkpDQotCW93bmVyLmdl dGZyb21wdyAocHdkKTsNCi0gICAgfQ0KLSAgaWYgKHNpZF9pZF9hdXRoIChncm91cCkgPT0gMjIp DQotICAgIHsNCi0gICAgICBzdHJ1Y3QgZ3JvdXAgKmdycDsNCi0gICAgICBnaWRfdCBnaWQgPSBn cm91cC5nZXRfZ2lkICgmY2xkYXApOw0KLSAgICAgIGlmIChnaWQgPCBVTklYX1BPU0lYX09GRlNF VCAmJiAoZ3JwID0gaW50ZXJuYWxfZ2V0Z3JnaWQgKGdpZCkpKQ0KLQlncm91cC5nZXRmcm9tZ3Ig KGdycCk7DQotICAgIH0NCi0NCi0gIGlmICghTlRfU1VDQ0VTUyAoUnRsR2V0RGFjbFNlY3VyaXR5 RGVzY3JpcHRvciAoc2RfcmV0LCAmZHVtbXksDQotCQkJCQkJICZvYWNsLCAmZHVtbXkpKSkNCi0g ICAgcmV0dXJuOw0KLSAgYWNsID0gKFBBQ0wpIHRwLndfZ2V0ICgpOw0KLSAgUnRsQ3JlYXRlQWNs IChhY2wsIEFDTF9NQVhJTVVNX1NJWkUsIEFDTF9SRVZJU0lPTik7DQotICBhY2xfbGVuID0gc2l6 ZW9mIChBQ0wpOw0KLQ0KLSAgZm9yIChEV09SRCBpID0gMDsgaSA8IG9hY2wtPkFjZUNvdW50OyAr K2kpDQotICAgIGlmIChOVF9TVUNDRVNTIChSdGxHZXRBY2UgKG9hY2wsIGksIChQVk9JRCAqKSAm YWNlKSkpDQotICAgICAgew0KLQljeWdzaWQgYWNlX3NpZCAoKFBTSUQpICZhY2UtPlNpZFN0YXJ0 KTsNCi0JaWYgKHNpZF9pZF9hdXRoIChhY2Vfc2lkKSA9PSAyMikNCi0JICB7DQotCSAgICBpZiAo c2lkX3N1Yl9hdXRoIChhY2Vfc2lkLCAwKSA9PSAxKSAvKiB1c2VyICovDQotCSAgICAgIHsNCi0J CXN0cnVjdCBwYXNzd2QgKnB3ZDsNCi0JCXVpZF90IHVpZCA9IGFjZV9zaWQuZ2V0X3VpZCAoJmNs ZGFwKTsNCi0JCWlmICh1aWQgPCBVTklYX1BPU0lYX09GRlNFVCAmJiAocHdkID0gaW50ZXJuYWxf Z2V0cHd1aWQgKHVpZCkpKQ0KLQkJICBhY2Vfc2lkLmdldGZyb21wdyAocHdkKTsNCi0JICAgICAg fQ0KLQkgICAgZWxzZSBpZiAoc2lkX3N1Yl9hdXRoIChhY2Vfc2lkLCAwKSA9PSAyKSAvKiBncm91 cCAqLw0KLQkgICAgICB7DQotCQlzdHJ1Y3QgZ3JvdXAgKmdycDsNCi0JCWdpZF90IGdpZCA9IGFj ZV9zaWQuZ2V0X2dpZCAoJmNsZGFwKTsNCi0JCWlmIChnaWQgPCBVTklYX1BPU0lYX09GRlNFVCAm JiAoZ3JwID0gaW50ZXJuYWxfZ2V0Z3JnaWQgKGdpZCkpKQ0KLQkJICBhY2Vfc2lkLmdldGZyb21n ciAoZ3JwKTsNCi0JICAgICAgfQ0KLQkgIH0NCi0JaWYgKCFhZGRfYWNjZXNzX2FsbG93ZWRfYWNl IChhY2wsIGFjZS0+TWFzaywgYWNlX3NpZCwgYWNsX2xlbiwNCi0JCQkJICAgICBhY2UtPkhlYWRl ci5BY2VGbGFncykpDQotCSAgcmV0dXJuOw0KLSAgICAgIH0NCi0gIGFjbC0+QWNsU2l6ZSA9IGFj bF9sZW47DQotDQotICBSdGxDcmVhdGVTZWN1cml0eURlc2NyaXB0b3IgKCZzZCwgU0VDVVJJVFlf REVTQ1JJUFRPUl9SRVZJU0lPTik7DQotICBSdGxTZXRDb250cm9sU2VjdXJpdHlEZXNjcmlwdG9y ICgmc2QsIFNFX0RBQ0xfUFJPVEVDVEVELCBTRV9EQUNMX1BST1RFQ1RFRCk7DQotICBSdGxTZXRP d25lclNlY3VyaXR5RGVzY3JpcHRvciAoJnNkLCBvd25lciwgRkFMU0UpOw0KLSAgUnRsU2V0R3Jv dXBTZWN1cml0eURlc2NyaXB0b3IgKCZzZCwgZ3JvdXAsIEZBTFNFKTsNCi0NCi0gIHN0YXR1cyA9 IFJ0bFNldERhY2xTZWN1cml0eURlc2NyaXB0b3IgKCZzZCwgVFJVRSwgYWNsLCBGQUxTRSk7DQot ICBpZiAoIU5UX1NVQ0NFU1MgKHN0YXR1cykpDQotICAgIHJldHVybjsNCi0gIERXT1JEIHNkX3Np emUgPSAwOw0KLSAgc3RhdHVzID0gUnRsQWJzb2x1dGVUb1NlbGZSZWxhdGl2ZVNEICgmc2QsIHNk X3JldCwgJnNkX3NpemUpOw0KLSAgaWYgKHNkX3NpemUgPiAwICYmIHNkX3JldC5tYWxsb2MgKHNk X3NpemUpKQ0KLSAgICBSdGxBYnNvbHV0ZVRvU2VsZlJlbGF0aXZlU0QgKCZzZCwgc2RfcmV0LCAm c2Rfc2l6ZSk7DQotfQ0KLQ0KIGludA0KIGNoZWNrX2ZpbGVfYWNjZXNzIChwYXRoX2NvbnYgJnBj LCBpbnQgZmxhZ3MsIGJvb2wgZWZmZWN0aXZlKQ0KIHsNCi0gIHNlY3VyaXR5X2Rlc2NyaXB0b3Ig c2Q7DQogICBpbnQgcmV0ID0gLTE7DQogICBBQ0NFU1NfTUFTSyBkZXNpcmVkID0gMDsNCiAgIGlm IChmbGFncyAmIFJfT0spDQpAQCAtNzA5LDEyICs2MTUsNDQgQEAgY2hlY2tfZmlsZV9hY2Nlc3Mg KHBhdGhfY29udiAmcGMsIGludCBmbGFncywgYm9vbCBlZmZlY3RpdmUpDQogICAgIGRlc2lyZWQg fD0gRklMRV9XUklURV9EQVRBOw0KICAgaWYgKGZsYWdzICYgWF9PSykNCiAgICAgZGVzaXJlZCB8 PSBGSUxFX0VYRUNVVEU7DQotICBpZiAoIWdldF9maWxlX3NkIChwYy5oYW5kbGUgKCksIHBjLCBz ZCwgZmFsc2UpKQ0KKw0KKyAgTlRTVEFUVVMgc3RhdHVzOw0KKyAgaWYgKCFlZmZlY3RpdmUgJiYg Y3lnaGVhcC0+dXNlci5pc3NldHVpZCAoKSkNCisgICAgew0KKyAgICAgIC8qIFN0cmlwIGltcGVy c29uYXRpb24gdG9rZW4gdGVtcG9yYXJpbHkgKi8NCisgICAgICBIQU5ETEUgdG9rID0gTk9fSU1Q RVJTT05BVElPTjsNCisgICAgICBzdGF0dXMgPSBOdFNldEluZm9ybWF0aW9uVGhyZWFkIChHZXRD dXJyZW50VGhyZWFkICgpLA0KKwkJCQkgICAgICAgVGhyZWFkSW1wZXJzb25hdGlvblRva2VuLA0K KwkJCQkgICAgICAgJnRvaywgc2l6ZW9mICh0b2spKTsNCisgICAgICBpZiAoIU5UX1NVQ0NFU1Mg KHN0YXR1cykpDQorCXsNCisJICBkZWJ1Z19wcmludGYoIk50U2V0SW5mb3JtYXRpb25UaHJlYWQo KSBmb3Igc3RyaXBwaW5nICINCisJCSAgICAgICAiaW1wZXJzb25hdGlvbiB0b2tlbiBmYWlsZWQ6 ICV5Iiwgc3RhdHVzKTsNCisJICBfX3NldGVycm5vX2Zyb21fbnRfc3RhdHVzIChzdGF0dXMpOw0K KwkgIHJldHVybiByZXQ7DQorCX0NCisgICAgfQ0KKyAgT0JKRUNUX0FUVFJJQlVURVMgYXR0cjsN CisgIHBjLmdldF9vYmplY3RfYXR0ciAoYXR0ciwgc2VjX25vbmVfbmloKTsNCisgIElPX1NUQVRV U19CTE9DSyBpbzsNCisgIEhBTkRMRSBoOw0KKyAgc3RhdHVzID0gTnRPcGVuRmlsZSAoJmgsIGRl c2lyZWQsICZhdHRyLCAmaW8sIEZJTEVfU0hBUkVfVkFMSURfRkxBR1MsDQorCQkgICAgICAgRklM RV9PUEVOX0ZPUl9CQUNLVVBfSU5URU5UKTsNCisgIGlmIChOVF9TVUNDRVNTIChzdGF0dXMpKQ0K ICAgICB7DQotICAgICAgLyogVHdlYWsgU2FtYmEgc2VjdXJpdHkgZGVzY3JpcHRvciBhcyBuZWNl c3NhcnkuICovDQotICAgICAgaWYgKHBjLmZzX2lzX3NhbWJhICgpKQ0KLQljb252ZXJ0X3NhbWJh X3NkIChzZCk7DQotICAgICAgcmV0ID0gY2hlY2tfYWNjZXNzIChzZCwgZmlsZV9tYXBwaW5nLCBk ZXNpcmVkLCBmbGFncywgZWZmZWN0aXZlKTsNCisgICAgICBOdENsb3NlIChoKTsNCisgICAgICBy ZXQgPSAwOw0KKyAgICB9DQorICBpZiAoIWVmZmVjdGl2ZSAmJiBjeWdoZWFwLT51c2VyLmlzc2V0 dWlkICgpKQ0KKyAgICB7DQorICAgICAgLyogUmVjb3ZlciBpbXBlcnNvbmF0aW9uIHRva2VuICov DQorICAgICAgSEFORExFIHRvayA9IGN5Z2hlYXAtPnVzZXIuaW1wX3Rva2VuICgpID86IGhQcm9j SW1wVG9rZW47DQorICAgICAgc3RhdHVzID0gTnRTZXRJbmZvcm1hdGlvblRocmVhZCAoR2V0Q3Vy cmVudFRocmVhZCAoKSwNCisJCQkJICAgICAgIFRocmVhZEltcGVyc29uYXRpb25Ub2tlbiwNCisJ CQkJICAgICAgICZ0b2ssIHNpemVvZiAodG9rKSk7DQorICAgICAgaWYgKCFOVF9TVUNDRVNTIChz dGF0dXMpKQ0KKwlkZWJ1Z19wcmludGYoIk50U2V0SW5mb3JtYXRpb25UaHJlYWQoKSBmb3IgcmVj b3ZlcmluZyAiDQorCQkgICAgICJpbXBlcnNvbmF0aW9uIHRva2VuIGZhaWxlZDogJXkiLCBzdGF0 dXMpOw0KICAgICB9DQogICBkZWJ1Z19wcmludGYgKCJmbGFncyAleSwgcmV0ICVkIiwgZmxhZ3Ms IHJldCk7DQogICByZXR1cm4gcmV0Ow0KLS0gDQoyLjQ1LjENCg0K --Multipart=_Sun__8_Dec_2024_08_13_38_+0900_AsYZLcTaqjLbIIQV Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- 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 --Multipart=_Sun__8_Dec_2024_08_13_38_+0900_AsYZLcTaqjLbIIQV--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |