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