NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: install/56303: On a fresh installation, /tmp on sparc64 is not sticky
The following reply was made to PR install/56303; it has been noted by GNATS.
From: RVP <rvp%SDF.ORG@localhost>
To: Andreas Gustafsson <gson%gson.org@localhost>
Cc: martin%netbsd.org@localhost, gnats-bugs%netbsd.org@localhost, roland.illig%gmx.de@localhost,
Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>, vezhlys%gmail.com@localhost
Subject: Re: install/56303: On a fresh installation, /tmp on sparc64 is not
sticky
Date: Tue, 27 Jul 2021 05:48:32 +0000 (UTC)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
--0-271137700-1627364913=:9396
Content-Type: text/plain; charset=US-ASCII; format=flowed
On Mon, 26 Jul 2021, Andreas Gustafsson wrote:
> Martin Husemann wrote:
>> I wonder if this is the same underlying cause (my guess: a tar(1) bug)
>> that causes PR install/56326, but I have no idea how to catch it
>> (besides sprinkling some kind of logging into the tar binary).
>
> Have you looked at rvp's test script and patch? I couldn't reproduce
> the problem using the script on -9/amd64, and I don't fully understand
> the patch, but this line in progress.c which is removed by the patch
> certainly looks wrong because it's testing errno when no error has
> occurred:
>
> if (deadpid != -1 && errno == EINTR)
>
> I wonder if changing it to this would be sufficient:
>
> if (deadpid == -1 && errno == EINTR)
>
On Mon, 26 Jul 2021, Izumi Tsutsui wrote:
> Not 100% reproducible, but happens again on 9.2 to 9.2 upgrade:
> ---
> -rwxr-xr-x 1 root wheel 20688364 May 12 13:15 netbsd
> -rwxr-xr-x 1 root wheel 13237760 Jul 26 13:52 netbsd17eUKh
> ---
>
I'm not able to reproduce this on my HW--might have to set up an
i386/Sparc Qemu (instructions welcome) to really chase this down,
but this looks like what happens if the input to tar closes
unexpectedly (or, you do Ctrl-C in the middle of extraction).
As I noted before, the current progress sometimes loses the status
of the gzip command, so, I've modified, and simplified, progress.c
slightly so that it returns a proper exit code every time.
Please try this new version; then we can see what causes tar to
abort mid-stream.
Thanks,
-RVP
--0-271137700-1627364913=:9396
Content-Type: text/plain; charset=US-ASCII; name=progress.c
Content-Transfer-Encoding: BASE64
Content-ID: <ea298b74-f670-1fcd-ec9d-a9a42d7ad47%SDF.ORG@localhost>
Content-Description: new progress.c
Content-Disposition: attachment; filename=progress.c
LyoJJE5ldEJTRDogcHJvZ3Jlc3MuYyx2IDEuMjMgMjAyMS8wMS8wNyAxMjow
Mjo1MiBsdWtlbSBFeHAgJCAqLw0KDQovKi0NCiAqIENvcHlyaWdodCAoYykg
MjAwMyBUaGUgTmV0QlNEIEZvdW5kYXRpb24sIEluYy4NCiAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuDQogKg0KICogVGhpcyBjb2RlIGlzIGRlcml2ZWQgZnJv
bSBzb2Z0d2FyZSBjb250cmlidXRlZCB0byBUaGUgTmV0QlNEIEZvdW5kYXRp
b24NCiAqIGJ5IEpvaG4gSGF3a2luc29uLg0KICoNCiAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQogKiBhcmUg
bWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4NCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQogKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlDQogKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLg0KICoNCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIE5FVEJTRCBGT1VOREFUSU9OLCBJTkMuIEFORCBDT05UUklCVVRPUlMN
CiAqIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRA0KICogVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINCiAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgRk9VTkRBVElPTiBPUiBD
T05UUklCVVRPUlMNCiAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1INCiAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GDQogKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MNCiAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElODQog
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQ0KICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUNCiAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLg0KICovDQoNCiNpbmNsdWRlIDxzeXMvY2RlZnMuaD4NCiNpZm5kZWYg
bGludA0KX19SQ1NJRCgiJE5ldEJTRDogcHJvZ3Jlc3MuYyx2IDEuMjMgMjAy
MS8wMS8wNyAxMjowMjo1MiBsdWtlbSBFeHAgJCIpOw0KI2VuZGlmCQkJCS8q
IG5vdCBsaW50ICovDQoNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNs
dWRlIDxzeXMvc3RhdC5oPg0KI2luY2x1ZGUgPHN5cy93YWl0Lmg+DQoNCiNp
bmNsdWRlIDxlcnIuaD4NCiNpbmNsdWRlIDxlcnJuby5oPg0KI2luY2x1ZGUg
PGZjbnRsLmg+DQojaW5jbHVkZSA8aW50dHlwZXMuaD4NCiNpbmNsdWRlIDxs
aW1pdHMuaD4NCiNpbmNsdWRlIDxzaWduYWwuaD4NCiNpbmNsdWRlIDxzdGRp
by5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KI2luY2x1ZGUgPHN0cmluZy5o
Pg0KI2luY2x1ZGUgPHRlcm1pb3MuaD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4N
Cg0KI2RlZmluZSBHTE9CQUwJCQkvKiBmb3JjZSBHTE9CQUwgZGVjbHMgaW4g
cHJvZ3Jlc3NiYXIuaCB0byBiZQ0KCQkJCSAqIGRlY2xhcmVkICovDQojaW5j
bHVkZSAicHJvZ3Jlc3NiYXIuaCINCg0Kc3RhdGljIHNzaXplX3QgbWF4d3Jp
dGUoaW50IGZkLCB2b2lkICpidWYsIHNpemVfdCBzaXplKTsNCl9fZGVhZCBz
dGF0aWMgdm9pZCB1c2FnZSh2b2lkKTsNCg0Kc3RhdGljIHZvaWQNCnVzYWdl
KHZvaWQpDQp7DQoJZnByaW50ZihzdGRlcnIsDQoJICAgICJ1c2FnZTogJXMg
Wy1lel0gWy1iIGJ1ZmZlcnNpemVdIFstZiBmaWxlXSBbLWwgbGVuZ3RoXVxu
Ig0KCSAgICAiICAgICAgICUqLnMgWy1wIHByZWZpeF0gY21kIFthcmdzLi4u
XVxuIiwNCgkgICAgZ2V0cHJvZ25hbWUoKSwgKGludCkgc3RybGVuKGdldHBy
b2duYW1lKCkpLCAiIik7DQoJZXhpdChFWElUX0ZBSUxVUkUpOw0KfQ0KDQpp
bnQNCm1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkNCnsNCgljaGFyICpm
Yl9idWY7DQoJY2hhciAqaW5maWxlID0gTlVMTDsNCglwaWRfdCBwaWQgPSAw
LCBnemlwcGlkID0gMDsNCglpbnQgY2gsIGlmZCwgb2ZkLCBvdXRwaXBlWzJd
Ow0KCWludCBnemlwc3RhdCwgY21kc3RhdDsNCglpbnQgZWZsYWcgPSAwLCBs
ZmxhZyA9IDAsIHpmbGFnID0gMDsNCglpbnQgcmMgPSBFWElUX0ZBSUxVUkU7
DQoJc2l6ZV90IGJ1ZmZlcnNpemU7DQoJc3RydWN0IHN0YXQgc3RhdGI7DQoJ
c3RydWN0IHdpbnNpemUgd2luOw0KDQoJc2V0cHJvZ25hbWUoYXJndlswXSk7
DQoNCgkvKiBkZWZhdWx0czogUmVhZCBmcm9tIHN0ZGluLCAwIGZpbGVzaXpl
IChubyBjb21wbGV0aW9uIGVzdGltYXRlKSAqLw0KCWlmZCA9IFNURElOX0ZJ
TEVOTzsNCglmaWxlc2l6ZSA9IDA7DQoJYnVmZmVyc2l6ZSA9IDY0ICogMTAy
NDsNCglwcmVmaXggPSBOVUxMOw0KDQoJd2hpbGUgKChjaCA9IGdldG9wdChh
cmdjLCBhcmd2LCAiYjplZjpsOnA6eiIpKSAhPSAtMSkNCgkJc3dpdGNoIChj
aCkgew0KCQljYXNlICdiJzoNCgkJCWJ1ZmZlcnNpemUgPSAoc2l6ZV90KSBz
dHJzdWZ0b2xsKCJidWZmZXIgc2l6ZSIsIG9wdGFyZywNCgkJCSAgICAwLCBT
U0laRV9NQVgpOw0KCQkJYnJlYWs7DQoJCWNhc2UgJ2UnOg0KCQkJZWZsYWcr
KzsNCgkJCWJyZWFrOw0KCQljYXNlICdmJzoNCgkJCWluZmlsZSA9IG9wdGFy
ZzsNCgkJCWJyZWFrOw0KCQljYXNlICdsJzoNCgkJCWxmbGFnKys7DQoJCQlm
aWxlc2l6ZSA9IHN0cnN1ZnRvbGwoImlucHV0IHNpemUiLCBvcHRhcmcsIDAs
DQoJCQkgICAgTExPTkdfTUFYKTsNCgkJCWJyZWFrOw0KCQljYXNlICdwJzoN
CgkJCXByZWZpeCA9IG9wdGFyZzsNCgkJCWJyZWFrOw0KCQljYXNlICd6JzoN
CgkJCXpmbGFnKys7DQoJCQlicmVhazsNCgkJY2FzZSAnPyc6DQoJCWRlZmF1
bHQ6DQoJCQl1c2FnZSgpOw0KCQkJLyogTk9UUkVBQ0hFRCAqLw0KCQl9DQoJ
YXJnYyAtPSBvcHRpbmQ7DQoJYXJndiArPSBvcHRpbmQ7DQoNCglpZiAoYXJn
YyA8IDEpDQoJCXVzYWdlKCk7DQoNCglpZiAoaW5maWxlICYmIChpZmQgPSBv
cGVuKGluZmlsZSwgT19SRE9OTFksIDApKSA8IDApDQoJCWVycihyYywgIiVz
IiwgaW5maWxlKTsNCg0KCS8qIHN0YXQoKSB0byBnZXQgdGhlIGZpbGVzaXpl
IHVubGVzcyBvdmVycmlkZGVuLCBvciAteiAqLw0KCWlmICghemZsYWcgJiYg
IWxmbGFnICYmIChmc3RhdChpZmQsICZzdGF0YikgPT0gMCkpIHsNCgkJaWYg
KFNfSVNSRUcoc3RhdGIuc3RfbW9kZSkpDQoJCQlmaWxlc2l6ZSA9IHN0YXRi
LnN0X3NpemU7DQoJfQ0KDQoJLyogZ3ppcCAtbCB0aGUgZmlsZSBpZiB3ZSBo
YXZlIHRoZSBuYW1lIGFuZCAteiBpcyBnaXZlbiAqLw0KCWlmICh6ZmxhZyAm
JiAhbGZsYWcgJiYgaW5maWxlICE9IE5VTEwpIHsNCgkJRklMRSAqZ3ppcHNp
emVwaXBlOw0KCQllbnVtIHsgU1ogPSAyNTYgfTsNCgkJY2hhciBidWZbU1pd
LCAqY3AsICpjbWQ7DQoNCgkJLyoNCgkJICogUmVhZCBzZWNvbmQgd29yZCBv
ZiBsYXN0IGxpbmUgb2YgZ3ppcCAtbCBvdXRwdXQuIExvb2tzIGxpa2U6DQoJ
CSAqICUgZ3ppcCAtbCAuLi9ldGMudGd6IA0KCQkgKiAgIGNvbXByZXNzZWQg
dW5jb21wcmVzc2VkICByYXRpbyB1bmNvbXByZXNzZWRfbmFtZQ0KCQkgKiAJ
IDExOTczNyAgICAgICA2OTYzMjAgIDgyLjglIC4uL2V0Yy50YXINCgkJICov
DQoNCgkJaWYgKGFzcHJpbnRmKCZjbWQsICJnemlwIC1sICVzIiwgaW5maWxl
KSA9PSAtMSkNCgkJCWVycihyYywgImFzcHJpbnRmIik7DQoJCWlmICgoZ3pp
cHNpemVwaXBlID0gcG9wZW4oY21kLCAiciIpKSA9PSBOVUxMKQ0KCQkJZXJy
KHJjLCAicmVhZGluZyBjb21wcmVzc2VkIGZpbGUgbGVuZ3RoIik7DQoJCWJ1
ZlswXSA9ICdcMCc7DQoJCXdoaWxlIChmZ2V0cyhidWYsIFNaLCBnemlwc2l6
ZXBpcGUpICE9IE5VTEwpDQoJCSAgICAvKiBFTVBUWSAqLzsNCgkJc3RydG9p
bWF4KGJ1ZiwgJmNwLCAxMCk7DQoJCWZpbGVzaXplID0gc3RydG9pbWF4KGNw
LCBOVUxMLCAxMCk7DQoJCWlmIChwY2xvc2UoZ3ppcHNpemVwaXBlKSA8IDAp
DQoJCQllcnIocmMsICJjbG9zaW5nIGNvbXByZXNzZWQgZmlsZSBsZW5ndGgg
cGlwZSIpOw0KCQlmcmVlKGNtZCk7DQoJfQ0KCS8qIFBpcGUgaW5wdXQgdGhy
b3VnaCBnemlwIC1kYyBpZiAteiBpcyBnaXZlbiAqLw0KCWlmICh6ZmxhZykg
ew0KCQlpbnQgZ3ppcHBpcGVbMl07DQoNCgkJaWYgKHBpcGUoZ3ppcHBpcGUp
IDwgMCkNCgkJCWVycihyYywgImd6aXAgcGlwZSIpOw0KCQlnemlwcGlkID0g
Zm9yaygpOw0KCQlpZiAoZ3ppcHBpZCA8IDApDQoJCQllcnIocmMsICJmb3Jr
IGZvciBnemlwIik7DQoNCgkJaWYgKGd6aXBwaWQpIHsNCgkJCS8qIHBhcmVu
dCAqLw0KCQkJZHVwMihnemlwcGlwZVswXSwgaWZkKTsNCgkJCWNsb3NlKGd6
aXBwaXBlWzBdKTsNCgkJCWNsb3NlKGd6aXBwaXBlWzFdKTsNCgkJfSBlbHNl
IHsNCgkJCWR1cDIoZ3ppcHBpcGVbMV0sIFNURE9VVF9GSUxFTk8pOw0KCQkJ
ZHVwMihpZmQsIFNURElOX0ZJTEVOTyk7DQoJCQljbG9zZShnemlwcGlwZVsw
XSk7DQoJCQljbG9zZShnemlwcGlwZVsxXSk7DQoJCQlpZiAoZXhlY2xwKCJn
emlwIiwgImd6aXAiLCAiLWRjIiwgTlVMTCkpDQoJCQkJZXJyKHJjLCAiZXhl
YygpaW5nIGd6aXAiKTsNCgkJfQ0KCX0NCg0KCS8qIEluaXRpYWxpemUgcHJv
Z3Jlc3NiYXIuYydzIGdsb2JhbCBzdGF0ZSAqLw0KCWJ5dGVzID0gMDsNCglw
cm9ncmVzcyA9IDE7DQoJdHR5b3V0ID0gZWZsYWcgPyBzdGRlcnIgOiBzdGRv
dXQ7DQoNCglpZiAodGNnZXR3aW5zaXplKGZpbGVubyh0dHlvdXQpLCAmd2lu
KSA9PSAtMSkNCgkJdHR5d2lkdGggPSA4MDsNCgllbHNlDQoJCXR0eXdpZHRo
ID0gd2luLndzX2NvbDsNCg0KCWZiX2J1ZiA9IG1hbGxvYyhidWZmZXJzaXpl
KTsNCglpZiAoZmJfYnVmID09IE5VTEwpDQoJCWVycihyYywgIm1hbGxvYyBm
b3IgYnVmZmVyc2l6ZSIpOw0KDQoJaWYgKHBpcGUob3V0cGlwZSkgPCAwKQ0K
CQllcnIocmMsICJvdXRwdXQgcGlwZSIpOw0KCXBpZCA9IGZvcmsoKTsNCglp
ZiAocGlkIDwgMCkNCgkJZXJyKHJjLCAiZm9yayBmb3Igb3V0cHV0IHBpcGUi
KTsNCg0KCWlmIChwaWQgPT0gMCkgew0KCQkvKiBjaGlsZCAqLw0KCQlkdXAy
KG91dHBpcGVbMF0sIFNURElOX0ZJTEVOTyk7DQoJCWNsb3NlKG91dHBpcGVb
MF0pOw0KCQljbG9zZShvdXRwaXBlWzFdKTsNCgkJZXhlY3ZwKGFyZ3ZbMF0s
IGFyZ3YpOw0KCQllcnIocmMsICJjb3VsZCBub3QgZXhlYyAlcyIsIGFyZ3Zb
MF0pOw0KCX0NCg0KCWNsb3NlKG91dHBpcGVbMF0pOw0KCW9mZCA9IG91dHBp
cGVbMV07DQoJc2lnbmFsKFNJR1BJUEUsIFNJR19JR04pOw0KCXByb2dyZXNz
bWV0ZXIoLTEpOw0KCWZvciAoOzspIHsNCgkJc3NpemVfdCBuciA9IHJlYWQo
aWZkLCBmYl9idWYsIGJ1ZmZlcnNpemUpOw0KCQlpZiAobnIgPCAwKSB7DQoJ
CQlpZiAoZXJybm8gPT0gRUlOVFIpDQoJCQkJY29udGludWU7DQoJCQllbHNl
DQoJCQkJYnJlYWs7DQoJCX0gZWxzZSBpZiAobnIgPT0gMCkgew0KCQkJcmMg
PSBFWElUX1NVQ0NFU1M7DQoJCQlicmVhazsNCgkJfSBlbHNlIHsNCgkJCWlm
IChtYXh3cml0ZShvZmQsIGZiX2J1ZiwgbnIpICE9IG5yKSB7DQoJCQkJcHJv
Z3Jlc3NtZXRlcigxKTsNCgkJCQllcnIocmMsICJ3cml0aW5nICV1IGJ5dGVz
IHRvIG91dHB1dCBwaXBlIiwNCgkJCQkJCQkodW5zaWduZWQpIG5yKTsNCgkJ
CX0NCgkJCWJ5dGVzICs9IG5yOw0KCQl9DQoJfQ0KCXByb2dyZXNzbWV0ZXIo
MSk7DQoJZnJlZShmYl9idWYpOw0KCWNsb3NlKG9mZCk7DQoJY2xvc2UoaWZk
KTsNCg0KCWd6aXBzdGF0ID0gMDsNCgljbWRzdGF0ID0gMDsNCgl3aGlsZSAo
cGlkIHx8IGd6aXBwaWQpIHsNCgkJaW50IGRlYWRwaWQ7DQoJCXBpZF90IHdz
Ow0KDQoJCWRlYWRwaWQgPSB3YWl0KCZ3cyk7DQoJCS8qDQoJCSAqIFdlIG5l
ZWQgdG8gZXhpdCB3aXRoIGFuIGVycm9yIGlmIHRoZSBjb21tYW5kIChvciBn
emlwKQ0KCQkgKiBleGl0ZWQgYWJub3JtYWxseS4NCgkJICovDQoJCXdzID0g
V0lGU0lHTkFMRUQod3MpID8gV1RFUk1TSUcod3MpIDogV0VYSVRTVEFUVVMo
d3MpOw0KCQlpZiAoZGVhZHBpZCA9PSBwaWQpIHsNCgkJCXBpZCA9IDA7DQoJ
CQljbWRzdGF0ID0gd3M7DQoJCQljb250aW51ZTsNCgkJfQ0KCQlpZiAoZGVh
ZHBpZCA9PSBnemlwcGlkKSB7DQoJCQlnemlwcGlkID0gMDsNCgkJCWd6aXBz
dGF0ID0gd3M7DQoJCQljb250aW51ZTsNCgkJfQ0KCQlicmVhazsNCgl9DQoN
CglpZiAoY21kc3RhdCkNCgkJZXhpdChjbWRzdGF0KTsNCglpZiAoZ3ppcHN0
YXQpDQoJCWV4aXQoZ3ppcHN0YXQpOw0KCWV4aXQocmMpOw0KfQ0KDQpzdGF0
aWMgc3NpemVfdA0KbWF4d3JpdGUoaW50IGZkLCB2b2lkICpidWYsIHNpemVf
dCBzaXplKQ0Kew0KCWNvbnN0IGNoYXIgKnAgPSBidWY7DQoJc3NpemVfdCBu
d3IgPSAwOw0KCXNzaXplX3QgbjsNCg0KCXdoaWxlIChzaXplID4gMCkgew0K
CQlpZiAoKG4gPSB3cml0ZShmZCwgcCwgc2l6ZSkpID09IC0xKSB7DQoJCQlz
d2l0Y2ggKGVycm5vKSB7DQoJCQljYXNlIEVJTlRSOg0KCQkJY2FzZSBFQUdB
SU46DQojaWYgZGVmaW5lZChFV09VTERCTE9DSykgJiYgRVdPVUxEQkxPQ0sg
IT0gRUFHQUlODQoJCQljYXNlIEVXT1VMREJMT0NLOg0KI2VuZGlmDQoJCQkJ
Y29udGludWU7DQoJCQlkZWZhdWx0Og0KCQkJCXJldHVybiBud3I7DQoJCQl9
DQoJCX0NCgkJcCArPSBuOw0KCQlud3IgKz0gbjsNCgkJc2l6ZSAtPSBuOw0K
CX0NCglyZXR1cm4gbndyOw0KfQ0K
--0-271137700-1627364913=:9396--
Home |
Main Index |
Thread Index |
Old Index