| 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 |