From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4975 invoked by alias); 2 Oct 2016 17:37:59 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39539 Received: (qmail 9540 invoked from network); 2 Oct 2016 17:37:59 -0000 X-Qmail-Scanner-Diagnostics: from mail-qk0-f176.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.220.176):SA:0(0.0/5.0):. Processed in 0.646744 secs); 02 Oct 2016 17:37:59 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,SPF_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: sgniazdowski@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.220.176 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=gcM2nLFYtf2eoIzw5R+SvuUmTpjod4f2GUmWPc+Bexg=; b=iYeCx717z/e/8EyWywWucu/875ZLrGeEJRt6ZWO0BWP8WFLQO9PCddFlqaDpdUZSC8 Wrgpv3pTp5jwXwBj73dZgNr0hWkE5oHGUvfCiYfmn/y6BZKisouJyJhGso72Qk6zpaJJ ZEyta3/XaIrrndrjYODMgP51RoKVaSSAxJZDJdEit6iAj/Lzuuc7AdEnUfeOGzCUiKaG hFkxOupzixLUOZlHy2s9o0smQtzfQBU5ZopjTOTEwn9My353C9fmjeRdZsftwxHokK+6 q18dK0U1RN55fCj1Gdc3CzKcCrD0nKl9gCLkjPylBUkBhA/g8kyAn9MdyHephzQFdFoX ljwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=gcM2nLFYtf2eoIzw5R+SvuUmTpjod4f2GUmWPc+Bexg=; b=XmA3PxNcZSo9qSe3p579gbmfPxH083s40KD4tzPFJQhA6p51rN/GiX3zGKDpkYyN6n zrNV+q6d2aKaEDjscJp5tnHPaBb2qVWDlw2D2Oqfce8gqnlUcAcfRClwgu5v5lHCPO1U zBXjddAHsKp0ULRfbUucO53pN1eUkMf7JdBAF9+/UygHX+3c1YqnYzaDKvj2raRqp+Mv JnUBRZZ1BvQHxeLihJJsilsF9LkpNZjZDDRHrsMUOOKwrXCZmq9Zp66rvn/dQEqh26/2 Fd1kdQvoHS8UYU67Vj1kcGDV8AUpX0VJeJpi/WLQsejyjCOGNaliY9RW9b7dUNfmPVny 05ug== X-Gm-Message-State: AA6/9RnQjVKkLXVq4ycX0PbyXS9mu27OUzHnmeqSsTabpA652MLhzgaDzas6nca9MmqyCgP2EkrDrN87d/s/hw== X-Received: by 10.55.190.68 with SMTP id o65mr17971238qkf.92.1475429872591; Sun, 02 Oct 2016 10:37:52 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <160924133140.ZM29034@torch.brasslantern.com> <160930134446.ZM17118@torch.brasslantern.com> From: Sebastian Gniazdowski Date: Sun, 2 Oct 2016 19:37:32 +0200 Message-ID: Subject: Re: Where to start debugging zle recursive-edit? / Ctrl-C To: Bart Schaefer Cc: Zsh hackers list Content-Type: multipart/mixed; boundary=94eb2c043be272bf70053de5495e --94eb2c043be272bf70053de5495e Content-Type: text/plain; charset=UTF-8 Investigated this further. The handler isn't exactly late. It is called before errflag checks, but exits here without setting errflag: /* Are we queueing signals now? */ if (queueing_enabled) { The log looks now like this: -- tmoutp != ZTM_NONE / raw_getbyte() zle_main.c ## zhandler(2) signals.c (debug message in first line of zhandler) ## zhandler(2) EXIT 1 signals.c (debug message in if(queueing_enabled)) -- NOT doing break selret[-1/4/4] / zle_main.c: errflag: 0, retflag: 0, breaks: 0, exit_pending: 0 -- Trying again selret[-1], !errtry[0] / zle_main.c -- tmoutp != ZTM_NONE / raw_getbyte() zle_main.c -- (**) NOT doing break selret[0/4/4] / zle_main.c: errflag: 0, retflag: 0, breaks: 0, exit_pending: 0 -- Passed !errtry(errtry:1) selret[0] / zle_main.c ## zhandler(2) signals.c ## set errflag to 2 (ERRFLAG_INT:2) / signals.c -- tmoutp->tp <- ZTM_NONE / calc_timeout( do_keytmout: 0 ), keytimeout: 40 / zle_main.c == CALC_TIMEOUT() one more chance (timedfns exp100ths: 100) -- CALC_TIMEOUT() tfnode TRUE no break NOT calling >> DIFF=1 << -- CALC_TIMEOUT() 0 != 1 || 100 <= 100 ZTM_FUNC(2) ^^^ LOOP-CALLED calc_timeout: tmout.tp == 2 / zle_main.c Interesting is (**) line, it still has errno == 4 (last number in [%d/%d/%d]), apparently errno=0 is needed before select, doing so clears the value. What's with the queueing and early exit from zhandler()? It brings disorder to .recursiveedit. Best regards, Sebastian Gniazdowski --94eb2c043be272bf70053de5495e Content-Type: text/plain; charset=US-ASCII; name="rec5_edit.5.diff.txt" Content-Disposition: attachment; filename="rec5_edit.5.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_itswu4s11 ZGlmZiAtLWdpdCBhL1NyYy9abGUvemxlX21haW4uYyBiL1NyYy9abGUvemxlX21haW4uYwppbmRl eCA5YTgzZDQxLi43OWQ2ZTIwIDEwMDY0NAotLS0gYS9TcmMvWmxlL3psZV9tYWluLmMKKysrIGIv U3JjL1psZS96bGVfbWFpbi5jCkBAIC00NTAsNDcgKzQ1MCw4NyBAQCBzdGF0aWMgdm9pZAogY2Fs Y190aW1lb3V0KHN0cnVjdCB6dG1vdXQgKnRtb3V0cCwgbG9uZyBkb19rZXl0bW91dCkKIHsKICAg ICBpZiAoZG9fa2V5dG1vdXQgJiYgKGtleXRpbWVvdXQgPiAwIHx8IGRvX2tleXRtb3V0IDwgMCkp IHsKIAlpZiAoZG9fa2V5dG1vdXQgPCAwKQogCSAgICB0bW91dHAtPmV4cDEwMHRocyA9ICh0aW1l X3QpLWRvX2tleXRtb3V0OwogCWVsc2UgaWYgKGtleXRpbWVvdXQgPiBaTUFYVElNRU9VVCAqIDEw MCAvKiAyNCBkYXlzIGZvciBhIGtleXByZXNzPz8/PyAqLykKIAkgICAgdG1vdXRwLT5leHAxMDB0 aHMgPSBaTUFYVElNRU9VVCAqIDEwMDsKIAllbHNlCiAJICAgIHRtb3V0cC0+ZXhwMTAwdGhzID0g a2V5dGltZW91dDsKIAl0bW91dHAtPnRwID0gWlRNX0tFWTsKLSAgICB9IGVsc2UKKyAgICAgICAg Ly8gTVkgREVCVUcKKyAgICAgICAgRklMRSAqX0YgPSBmb3BlbigiL3RtcC9yZWN1cnNpdmUudHh0 IiwgImErIik7CisgICAgICAgIGZwcmludGYoIF9GLCAiLS0gdG1vdXRwLT50cCA8LSBaVE1fS0VZ ICglZCkgLyBjYWxjX3RpbWVvdXQoKSB6bGVfbWFpbi5jXG4iLCB0bW91dHAtPmV4cDEwMHRocyAp OworICAgICAgICBmY2xvc2UoX0YpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE1ZIERFQlVH CisgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOwor ICAgICAgICBmcHJpbnRmKCBfRiwgIi0tIHRtb3V0cC0+dHAgPC0gWlRNX05PTkUgLyBjYWxjX3Rp bWVvdXQoIGRvX2tleXRtb3V0OiAlZCApLCBrZXl0aW1lb3V0OiAlZCAvIHpsZV9tYWluLmNcbiIs IGRvX2tleXRtb3V0LCBrZXl0aW1lb3V0ICk7CisgICAgICAgIGZjbG9zZShfRik7CisKIAl0bW91 dHAtPnRwID0gWlRNX05PTkU7CisgICAgfQogCiAgICAgaWYgKHRpbWVkZm5zKSB7CisgICAgICAg IC8vIE1ZIERFQlVHCisgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4 dCIsICJhKyIpOworICAgICAgICBmcHJpbnRmKCBfRiwgIj09IENBTENfVElNRU9VVCgpIG9uZSBt b3JlIGNoYW5jZSAodGltZWRmbnMgZXhwMTAwdGhzOiAlZClcbiIsIHRtb3V0cC0+ZXhwMTAwdGhz ICk7CisgICAgICAgIGZjbG9zZShfRik7CiAJZm9yICg7OykgewogCSAgICBMaW5rTm9kZSB0Zm5v ZGUgPSBmaXJzdG5vZGUodGltZWRmbnMpOwogCSAgICBUaW1lZGZuIHRmZGF0OwogCSAgICB0aW1l X3QgZGlmZiwgZXhwMTAwdGhzOwogCi0JICAgIGlmICghdGZub2RlKQorCSAgICBpZiAoIXRmbm9k ZSkgeworICAgICAgICAgICAgICAgIC8vIE1ZIERFQlVHCisgICAgICAgICAgICAgICAgRklMRSAq X0YgPSBmb3BlbigiL3RtcC9yZWN1cnNpdmUudHh0IiwgImErIik7CisgICAgICAgICAgICAgICAg ZnByaW50ZiggX0YsICItLSBDQUxDX1RJTUVPVVQoKSAhdGZub2RlIGJyZWFrXG4iICk7CisgICAg ICAgICAgICAgICAgZmNsb3NlKF9GKTsKIAkJYnJlYWs7CisgICAgICAgICAgICB9CiAKIAkgICAg dGZkYXQgPSAoVGltZWRmbilnZXRkYXRhKHRmbm9kZSk7CiAJICAgIGRpZmYgPSB0ZmRhdC0+d2hl biAtIHRpbWUoTlVMTCk7CisKIAkgICAgaWYgKGRpZmYgPCAwKSB7CisgICAgICAgICAgICAgICAg Ly8gTVkgREVCVUcKKyAgICAgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vy c2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKCBfRiwgIi0tIENBTENf VElNRU9VVCgpIHRmbm9kZSBUUlVFIG5vIGJyZWFrIENBTExJTkcgPj4gRElGRj0lZCA8PFxuIiwg ZGlmZiApOworICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CisKIAkJLyogQWxyZWFkeSBkdWU7 IGNhbGwgaXQgYW5kIHJlc2Nhbi4gKi8KIAkJdGZkYXQtPmZ1bmMoKTsKIAkJY29udGludWU7Ci0J ICAgIH0KKwkgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAg ICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOwor ICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gQ0FMQ19USU1FT1VUKCkgdGZub2RlIFRS VUUgbm8gYnJlYWsgTk9UIGNhbGxpbmcgPj4gRElGRj0lZCA8PFxuIiwgZGlmZiApOworICAgICAg ICAgICAgICAgIGZjbG9zZShfRik7CisgICAgICAgICAgICB9CiAKIAkgICAgaWYgKGRpZmYgPiBa TUFYVElNRU9VVCkgeworICAgICAgICAgICAgICAgIC8vIE1ZIERFQlVHCisgICAgICAgICAgICAg ICAgRklMRSAqX0YgPSBmb3BlbigiL3RtcC9yZWN1cnNpdmUudHh0IiwgImErIik7CisgICAgICAg ICAgICAgICAgZnByaW50ZiggX0YsICItLSBDQUxDX1RJTUVPVVQoKSAlZCA+ICVkIFpUTV9NQVgo JWQpXG4iLCBkaWZmLCBaTUFYVElNRU9VVCwgWlRNX01BWCApOworICAgICAgICAgICAgICAgIGZj bG9zZShfRik7CisKIAkJdG1vdXRwLT5leHAxMDB0aHMgPSBaTUFYVElNRU9VVCAqIDEwMDsKIAkJ dG1vdXRwLT50cCA9IFpUTV9NQVg7Ci0JICAgIH0gZWxzZSBpZiAoZGlmZiA+IDApIHsKKwkgICAg fSBlbHNlIGlmIChkaWZmID49IDApIHsKIAkJZXhwMTAwdGhzID0gZGlmZiAqIDEwMDsKIAkJaWYg KHRtb3V0cC0+dHAgIT0gWlRNX0tFWSB8fAotCQkgICAgZXhwMTAwdGhzIDwgdG1vdXRwLT5leHAx MDB0aHMpIHsKKwkJICAgIGV4cDEwMHRocyA8PSB0bW91dHAtPmV4cDEwMHRocykgeworICAgICAg ICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgICAgICBGSUxFICpfRiA9 IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICAgICAg ZnByaW50ZiggX0YsICItLSBDQUxDX1RJTUVPVVQoKSAlZCAhPSAlZCB8fCAlZCA8PSAlZCBaVE1f RlVOQyglZClcbiIsIHRtb3V0cC0+dHAsIFpUTV9LRVksIGV4cDEwMHRocywgdG1vdXRwLT5leHAx MDB0aHMsIFpUTV9GVU5DICk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CisKIAkJ ICAgIHRtb3V0cC0+ZXhwMTAwdGhzID0gZXhwMTAwdGhzOwogCQkgICAgdG1vdXRwLT50cCA9IFpU TV9GVU5DOwogCQl9CiAJICAgIH0KIAkgICAgYnJlYWs7CiAJfQogCS8qIEluIGNhc2Ugd2UgY2Fs bGVkIGEgZnVuY3Rpb24gd2hpY2ggbWVzc2VkIHVwIHRoZSBkaXNwbGF5Li4uICovCiAJaWYgKHJl c2V0bmVlZGVkKQogCSAgICB6cmVmcmVzaCgpOwogICAgIH0KQEAgLTUwOCwyMCArNTQ4LDI0IEBA IHJhd19nZXRieXRlKGxvbmcgZG9fa2V5dG1vdXQsIGNoYXIgKmNwdHIpCiAgICAgc3RydWN0IHR0 eWluZm8gdGk7CiAjZW5kaWYKICNpZm5kZWYgSEFWRV9QT0xMCiAjIGlmZGVmIEhBVkVfU0VMRUNU CiAgICAgZmRfc2V0IGZvb2ZkLCBlcnJmZDsKICAgICBGRF9aRVJPKCZlcnJmZCk7CiAjIGVuZGlm CiAjZW5kaWYKIAogICAgIGNhbGNfdGltZW91dCgmdG1vdXQsIGRvX2tleXRtb3V0KTsKKyAgICAv LyBNWSBERUJVRworICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJh KyIpOworICAgIGZwcmludGYoIF9GLCAiLS0gSU5JVCB0bW91dC50cCglZCkgWlRNX05PTkUoJWQp IFpUTV9LRVkoJWQpIC8gQkVHSU4gUkFXX0dFVEJZVEUoKSB6bGVfbWFpbi5jXG4iLCB0bW91dC50 cCwgWlRNX05PTkUsIFpUTV9LRVkgKTsKKyAgICBmY2xvc2UoX0YpOwogCiAgICAgLyoKICAgICAg KiBIYW5kbGUgdGltZW91dHMgYW5kIHdhdGNoZWQgZmQncy4gIElmIGEgd2F0Y2hlZCBmZCBvciBh IGZ1bmN0aW9uCiAgICAgICogdGltZW91dCB0cmlnZ2VycyB3ZSByZXN0YXJ0IGFueSBrZXkgdGlt ZW91dC4gIFRoaXMgaXMgbGlrZWx5IHRvCiAgICAgICogYmUgaGFybWxlc3M6IHRoZSBjb21iaW5h dGlvbiBpcyBleHRyZW1lbHkgcmFyZSBhbmQgYSBmdW5jdGlvbgogICAgICAqIGlzIGxpa2VseSB0 byBvY2N1cHkgdGhlIHVzZXIgZm9yIGEgbGl0dGxlIHdoaWxlIGFueXdheS4gIFdlIHVzZWQKICAg ICAgKiB0byBtYWtlIHRpbWVvdXRzIHRha2UgcHJlY2VkZW5jZSwgYnV0IHdlIGNhbid0IG5vdyB0 aGF0IHRoZQogICAgICAqIHRpbWVvdXRzIG1heSBiZSBleHRlcm5hbCwgc28gd2UgbWF5IGhhdmUg Ym90aCBhIHBlcm1hbmVudCB3YXRjaGVkCiAgICAgICogZmQgYW5kIGEgbG9uZy10ZXJtIHRpbWVv dXQuCiAgICAgICovCkBAIC02MDAsNDMgKzY0NCw3OCBAQCByYXdfZ2V0Ynl0ZShsb25nIGRvX2tl eXRtb3V0LCBjaGFyICpjcHRyKQogCQkgICAgaWYgKGZkID4gZmRtYXgpCiAJCQlmZG1heCA9IGZk OwogCQl9CiAJICAgIH0KIAkgICAgRkRfWkVSTygmZXJyZmQpOwogCiAJICAgIGlmICh0bW91dC50 cCAhPSBaVE1fTk9ORSkgewogCQlleHBpcmVfdHYudHZfc2VjID0gdG1vdXQuZXhwMTAwdGhzIC8g MTAwOwogCQlleHBpcmVfdHYudHZfdXNlYyA9ICh0bW91dC5leHAxMDB0aHMgJSAxMDApICogMTAw MDBMOwogCQl0dnB0ciA9ICZleHBpcmVfdHY7CisKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJV RworICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIs ICJhKyIpOworICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiXG4tLSB0bW91dHAgIT0gWlRN X05PTkUgLyByYXdfZ2V0Ynl0ZSgpIHpsZV9tYWluLmNcbiIgKTsKKyAgICAgICAgICAgICAgICBm Y2xvc2UoX0YpOwogCSAgICB9Ci0JICAgIGVsc2UKKwkgICAgZWxzZSB7CisgICAgICAgICAgICAg ICAgLy8gTVkgREVCVUcKKyAgICAgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3Jl Y3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKCBfRiwgIlxuLS0g RklOQUwgKFNUT1ApIHRtb3V0cCA9PSBaVE1fTk9ORSAvIHJhd19nZXRieXRlKCkgemxlX21haW4u Y1xuIiApOworICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CisKIAkJdHZwdHIgPSBOVUxMOwor ICAgICAgICAgICAgfQogCiAJICAgIHdpbmNoX3VuYmxvY2soKTsKIAkgICAgc2VscmV0ID0gc2Vs ZWN0KGZkbWF4KzEsIChTRUxFQ1RfQVJHXzJfVCkgJiBmb29mZCwKIAkJCSAgICBOVUxMLCBOVUxM LCB0dnB0cik7CiAJICAgIHdpbmNoX2Jsb2NrKCk7CiAjIGVuZGlmCiAJICAgIC8qCiAJICAgICAq IE1ha2Ugc3VyZSBhIHVzZXIgaW50ZXJydXB0IGdldHMgcGFzc2VkIG9uIHN0cmFpZ2h0IGF3YXku CiAJICAgICAqLwotCSAgICBpZiAoc2VscmV0IDwgMCAmJiAoZXJyZmxhZyB8fCByZXRmbGFnIHx8 IGJyZWFrcyB8fCBleGl0X3BlbmRpbmcpKQorCSAgICBpZiAoc2VscmV0IDwgMCAmJiAoZXJyZmxh ZyB8fCByZXRmbGFnIHx8IGJyZWFrcyB8fCBleGl0X3BlbmRpbmcpKSB7CisgICAgICAgICAgICAg ICAgLy8gTVkgREVCVUcKKyAgICAgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3Jl Y3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKCBfRiwgIi0tIERv aW5nIGJyZWFrIFtzZWxyZXQ6JWQvJWQvJWRdIC8gemxlX21haW4uYzogZXJyZmxhZzogJWQsIHJl dGZsYWc6ICVkLCBicmVha3M6ICVkLCBleGl0X3BlbmRpbmc6ICVkXG4iLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbHJldCwgRUlOVFIsIGVycm5vLCBlcnJmbGFnLCByZXRmbGFnLCBi cmVha3MsIGV4aXRfcGVuZGluZyApOworICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CiAJCWJy ZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJVRwor ICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJh KyIpOworICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gTk9UIGRvaW5nIGJyZWFrIHNl bHJldFslZC8lZC8lZF0gLyB6bGVfbWFpbi5jOiBlcnJmbGFnOiAlZCwgcmV0ZmxhZzogJWQsIGJy ZWFrczogJWQsIGV4aXRfcGVuZGluZzogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VscmV0LCBFSU5UUiwgZXJybm8sIGVycmZsYWcsIHJldGZsYWcsIGJyZWFrcywgZXhpdF9w ZW5kaW5nICk7CisgICAgICAgICAgICAgICAgZmNsb3NlKF9GKTsKKyAgICAgICAgICAgIH0KKwog CSAgICAvKgogCSAgICAgKiBUcnkgdG8gYXZvaWQgZXJyb3JzIG9uIG91ciBzcGVjaWFsIGZkJ3Mg ZnJvbQogCSAgICAgKiBtZXNzaW5nIHVwIHJlYWRzIGZyb20gdGhlIHRlcm1pbmFsLiAgVHJ5IGZp cnN0CiAJICAgICAqIHdpdGggYWxsIGZkcywgdGhlbiB0cnkgdW5zZXR0aW5nIHRoZSBzcGVjaWFs IG9uZXMuCiAJICAgICAqLwogCSAgICBpZiAoc2VscmV0IDwgMCAmJiAhZXJydHJ5KSB7CisgICAg ICAgICAgICAgICAgLy8gTVkgREVCVUcKKyAgICAgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVu KCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKCBf RiwgIi0tIFRyeWluZyBhZ2FpbiBzZWxyZXRbJWRdLCAhZXJydHJ5WyVkXSAvIHpsZV9tYWluLmNc biIsIHNlbHJldCwgZXJydHJ5ICk7CisgICAgICAgICAgICAgICAgZmNsb3NlKF9GKTsKKwogCQll cnJ0cnkgPSAxOwogCQljb250aW51ZTsKLQkgICAgfQorCSAgICB9IGVsc2UgeworICAgICAgICAg ICAgICAgIC8vIE1ZIERFQlVHCisgICAgICAgICAgICAgICAgRklMRSAqX0YgPSBmb3BlbigiL3Rt cC9yZWN1cnNpdmUudHh0IiwgImErIik7CisgICAgICAgICAgICAgICAgZnByaW50ZiggX0YsICIt LSAgUGFzc2VkICFlcnJ0cnkoZXJydHJ5OiVkKSBzZWxyZXRbJWRdIC8gemxlX21haW4uY1xuIiwg ZXJydHJ5LCBzZWxyZXQgKTsKKyAgICAgICAgICAgICAgICBmY2xvc2UoX0YpOworICAgICAgICAg ICAgfQorCiAJICAgIGlmIChzZWxyZXQgPT0gMCkgewogCQkvKgogCQkgKiBOb3RoaW5nIHJlYWR5 IGFuZCBubyBlcnJvciwgc28gd2UgdGltZWQgb3V0LgogCQkgKi8KIAkJc3dpdGNoICh0bW91dC50 cCkgewogCQljYXNlIFpUTV9OT05FOgogCQkgICAgLyoga2VlcHMgY29tcGlsZXIgaGFwcHkgaWYg bm90IGRlYnVnZ2luZyAqLwogI2lmZGVmIERFQlVHCiAJCSAgICBkcHV0cygiQlVHOiB0aW1lb3V0 IGZpcmVkIHdpdGggbm8gdGltZW91dCBzZXQuIik7CiAjZW5kaWYKQEAgLTY2OSwyMCArNzQ4LDI0 IEBAIHJhd19nZXRieXRlKGxvbmcgZG9fa2V5dG1vdXQsIGNoYXIgKmNwdHIpCiAJCWNhc2UgWlRN X01BWDoKIAkJICAgIC8qCiAJCSAgICAgKiBSZWFjaGVkIHRoZSBsaW1pdCBvZiBvdXIgcmFuZ2Us IGJ1dCBub3QgdGhlCiAJCSAgICAgKiBhY3R1YWwgdGltZW91dDsgcmVjYWxjdWxhdGUgdGhlIHRp bWVvdXQuCiAJCSAgICAgKiBXZSdyZSBjaGVhdGluZyB3aXRoIHRoZSBrZXkgdGltZW91dCBoZXJl OgogCQkgICAgICogaWYgb25lIGNsYXNoZWQgd2l0aCBhIGZ1bmN0aW9uIHRpbWVvdXQgd2UKIAkJ ICAgICAqIHJlY29uc2lkZXIgdGhlIGtleSB0aW1lb3V0IGZyb20gc2NyYXRjaC4KIAkJICAgICAq IFRoZSBlZmZlY3Qgb2YgdGhpcyBpcyBtaWNyb3Njb3BpYy4KIAkJICAgICAqLwogCQkgICAgY2Fs Y190aW1lb3V0KCZ0bW91dCwgZG9fa2V5dG1vdXQpOworICAgICAgICAgICAgICAgICAgICAvLyBN WSBERUJVRworICAgICAgICAgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vy c2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICAgICAgZnByaW50ZiggX0YsICJeXl4g TE9PUC1DQUxMRUQgY2FsY190aW1lb3V0OiB0bW91dC50cCA9PSAlZCAvIHpsZV9tYWluLmNcbiIs IHRtb3V0LnRwICk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CiAJCSAgICBicmVh azsKIAkJfQogCQkvKgogCQkgKiBJZiB3ZSBoYW5kbGVkIHRoZSB0aW1lb3V0IHN1Y2Nlc3NmdWxs eSwKIAkJICogY2Fycnkgb24uCiAJCSAqLwogCQlpZiAoc2VscmV0ID09IDApCiAJCSAgICBjb250 aW51ZTsKIAkgICAgfQogCSAgICAvKiBJZiBlcnJvciBvciB1bmhhbmRsZWQgdGltZW91dCwgZ2l2 ZSB1cC4gKi8KQEAgLTg4OCwyMiArOTcxLDM2IEBAIGdldGJ5dGUobG9uZyBkb19rZXl0bW91dCwg aW50ICp0aW1lb3V0KQogCQkgICB0aGUgY291bnRlciAoaWNudCkgc28gdGhhdCB0aGlzIGhhcHBl bnMgMjAgdGltZXMgYW5kIHRoYW4KIAkJICAgdGhlIHNoZWxsIGdpdmVzIHVwICh5ZXMsIHRoaXMg aXMgYSBiaXQgZGlydHkuLi4pLiAqLwogCQlpZiAoKHpsZXJlYWRmbGFncyAmIFpMUkZfSUdOT1JF RU9GKSAmJiBpY250KysgPCAyMCkKIAkJICAgIGNvbnRpbnVlOwogCQlzdG9wbXNnID0gMTsKIAkJ emV4aXQoMSwgMCk7CiAJICAgIH0KIAkgICAgaWNudCA9IDA7CiAJICAgIGlmIChlcnJubyA9PSBF SU5UUikgewogCQlkaWUgPSAwOworICAgICAgICAgICAgICAgIHN0YXRpYyBpbnQgY291bnRlciA9 IDA7CisKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgIEZJTEUg Kl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOworICAgICAgICAgICAgICAg IGZwcmludGYoIF9GLCAiLS0gR290IEVJTlRSICVkXG4iLCArK2NvdW50ZXIgKTsKKyAgICAgICAg ICAgICAgICBmY2xvc2UoX0YpOworCiAJCWlmICghZXJyZmxhZyAmJiAhcmV0ZmxhZyAmJiAhYnJl YWtzICYmICFleGl0X3BlbmRpbmcpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVuKCIv dG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICAgICAgZnByaW50Zigg X0YsICItLSBDb250aW51aW5nIGRlc3BpdGUgRUlOVFIgLyB6bGVfbWFpbi5jOiBlcnJmbGFnOiAl ZCwgcmV0ZmxhZzogJWQsIGJyZWFrczogJWQsIGV4aXRfcGVuZGluZzogJWRcbiIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVycmZsYWcsIHJldGZsYWcsIGJyZWFrcywgZXhpdF9w ZW5kaW5nICk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CiAJCSAgICBjb250aW51 ZTsKKyAgICAgICAgICAgICAgICB9CiAJCWVycmZsYWcgJj0gfkVSUkZMQUdfRVJST1I7CiAJCWJy ZWFrcyA9IG9icmVha3M7CiAJCWVycm5vID0gb2xkX2Vycm5vOwogCQlyZXR1cm4gbGFzdGNoYXIg PSBFT0Y7CiAJICAgIH0gZWxzZSBpZiAoZXJybm8gPT0gRVdPVUxEQkxPQ0spIHsKIAkJZmNudGwo MCwgRl9TRVRGTCwgMCk7CiAJICAgIH0gZWxzZSBpZiAoZXJybm8gPT0gRUlPICYmICFkaWUpIHsK IAkJcmV0ID0gb3B0c1tNT05JVE9SXTsKIAkJb3B0c1tNT05JVE9SXSA9IDE7CiAJCWF0dGFjaHR0 eShteXBncnApOwpAQCAtMTExNSwyMCArMTIxMiwyNCBAQCB6bGVjb3JlKHZvaWQpCiAJCWlmIChl b2ZzZW50KQogCQkgICAgYnJlYWs7CiAJICAgIH0KIAkgICAgaGFuZGxlcHJlZml4ZXMoKTsKIAkg ICAgLyogZm9yIHZpIG1vZGUsIG1ha2Ugc3VyZSB0aGUgY3Vyc29yIGlzbid0IHNvbWV3aGVyZSBp bGxlZ2FsICovCiAJICAgIGlmIChpbnZpY21kbW9kZSgpICYmIHpsZWNzID4gZmluZGJvbCgpICYm CiAJCSh6bGVjcyA9PSB6bGVsbCB8fCB6bGVsaW5lW3psZWNzXSA9PSBaV0MoJ1xuJykpKQogCQlE RUNDUygpOwogCSAgICBoYW5kbGV1bmRvKCk7CiAJfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE1Z IERFQlVHCisgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQi LCAiYSsiKTsKKyAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gU2V0dGluZyBlcnJvciBpbiB6 bGVjb3JlLmNcbiIgKTsKKyAgICAgICAgICAgIGZjbG9zZShfRik7CiAJICAgIGVycmZsYWcgfD0g RVJSRkxBR19FUlJPUjsKIAkgICAgYnJlYWs7CiAJfQogCiAJcmVkcmF3aG9vaygpOwogI2lmZGVm IEhBVkVfUE9MTAogCWlmIChiYXVkICYmICEobGFzdGNtZCAmIFpMRV9NRU5VQ01QKSkgewogCSAg ICBzdHJ1Y3QgcG9sbGZkIHBmZDsKIAkgICAgaW50IHRvID0gY29zdCAqIGNvc3RtdWx0IC8gMTAw MDsgLyogbWlsbGlzZWNvbmRzICovCiAKZGlmZiAtLWdpdCBhL1NyYy9zaWduYWxzLmMgYi9TcmMv c2lnbmFscy5jCmluZGV4IGUyNTg3ZGMuLmVhMmY0NzIgMTAwNjQ0Ci0tLSBhL1NyYy9zaWduYWxz LmMKKysrIGIvU3JjL3NpZ25hbHMuYwpAQCAtNTU1LDIwICs1NTUsMjMgQEAgd2FpdF9mb3JfcHJv Y2Vzc2VzKHZvaWQpCiAJdW5xdWV1ZV9zaWduYWxzKCk7CiAgICAgfQogfQogCiAvKiB0aGUgc2ln bmFsIGhhbmRsZXIgKi8KICAKIC8qKi8KIG1vZF9leHBvcnQgUkVUU0lHVFlQRQogemhhbmRsZXIo aW50IHNpZykKIHsKKyAgICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAi YSsiKTsKKyAgICBmcHJpbnRmKCBfRiwgIiMjIHpoYW5kbGVyKCVkKSBzaWduYWxzLmNcbiIsIHNp ZyApOworICAgIGZjbG9zZSggX0YgKTsKICAgICBzaWdzZXRfdCBuZXdtYXNrLCBvbGRtYXNrOwog CiAjaWYgZGVmaW5lZChOT19TSUdOQUxfQkxPQ0tJTkcpCiAgICAgaW50IGRvX2p1bXA7CiAgICAg c2lnbmFsX2ptcF9idWYganVtcF90bzsKICNlbmRpZgogIAogICAgIGxhc3Rfc2lnbmFsID0gc2ln OwogICAgIHNpZ25hbF9wcm9jZXNzKHNpZyk7CiAgCkBAIC01OTksMjAgKzYwMiwyNCBAQCB6aGFu ZGxlcihpbnQgc2lnKQogCS8qIE1ha2Ugc3VyZSBpdCdzIG5vdCBmdWxsIChleHRyZW1lbHkgdW5s aWtlbHkpICovCiAgICAgICAgIGlmICh0ZW1wX3JlYXIgIT0gcXVldWVfZnJvbnQpIHsKIAkgICAg Lyogb2ssIG5vdCBmdWxsLCBzbyBhZGQgdG8gcXVldWUgICAqLwogICAgICAgICAgICAgcXVldWVf cmVhciA9IHRlbXBfcmVhcjsKIAkgICAgLyogc2F2ZSBzaWduYWwgY2F1Z2h0ICAgICAgICAgICAg ICAqLwogICAgICAgICAgICAgc2lnbmFsX3F1ZXVlW3F1ZXVlX3JlYXJdID0gc2lnOwogCSAgICAv KiBzYXZlIGN1cnJlbnQgc2lnbmFsIG1hc2sgICAgICAgICovCiAgICAgICAgICAgICBzaWduYWxf bWFza19xdWV1ZVtxdWV1ZV9yZWFyXSA9IG9sZG1hc2s7CiAgICAgICAgIH0KICAgICAgICAgc2ln bmFsX3Jlc2V0KHNpZyk7CisKKyAgICAgICAgRklMRSAqX0YgPSBmb3BlbigiL3RtcC9yZWN1cnNp dmUudHh0IiwgImErIik7CisgICAgICAgIGZwcmludGYoIF9GLCAiIyMgemhhbmRsZXIoJWQpIEVY SVQgMSBzaWduYWxzLmNcbiIsIHNpZyApOworICAgICAgICBmY2xvc2UoIF9GICk7CiAgICAgICAg IHJldHVybjsKICAgICB9CiAgCiAgICAgLyogUmVzZXQgc2lnbmFsIG1hc2ssIHNpZ25hbCB0cmFw cyBvayBub3cgKi8KICAgICBzaWduYWxfc2V0bWFzayhvbGRtYXNrKTsKICAKICAgICBzd2l0Y2gg KHNpZykgewogICAgIGNhc2UgU0lHQ0hMRDoKIAl3YWl0X2Zvcl9wcm9jZXNzZXMoKTsKICAgICAg ICAgYnJlYWs7CkBAIC02MzgsMjAgKzY0NSwyNSBAQCB6aGFuZGxlcihpbnQgc2lnKQogICAgIGNh c2UgU0lHSU5UOgogICAgICAgICBpZiAoIWhhbmRsZXRyYXAoU0lHSU5UKSkgewogCSAgICBpZiAo KGlzc2V0KFBSSVZJTEVHRUQpIHx8IGlzc2V0KFJFU1RSSUNURUQpKSAmJgogCQlpc3NldChJTlRF UkFDVElWRSkgJiYgbm9lcnJleGl0IDwgMCkKIAkJemV4aXQoU0lHSU5ULCAxKTsKICAgICAgICAg ICAgIGlmIChsaXN0X3BpcGUgfHwgY2hsaW5lIHx8IHNpbXBsZV9wbGluZSkgewogICAgICAgICAg ICAgICAgIGJyZWFrcyA9IGxvb3BzOwogICAgICAgICAgICAgICAgIGVycmZsYWcgfD0gRVJSRkxB R19JTlQ7CiAJCWluZXJyZmx1c2goKTsKIAkJY2hlY2tfY3Vyc2hfc2lnKFNJR0lOVCk7CisKKyAg ICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9w ZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOworICAgICAgICAgICAgICAgIGZwcmludGYo IF9GLCAiIyMgc2V0IGVycmZsYWcgdG8gJWQgKEVSUkZMQUdfSU5UOiVkKSAvIHNpZ25hbHMuY1xu IiwgZXJyZmxhZywgRVJSRkxBR19JTlQgKTsKKyAgICAgICAgICAgICAgICBmY2xvc2UoX0YpOwog ICAgICAgICAgICAgfQogCSAgICBsYXN0dmFsID0gMTI4ICsgU0lHSU5UOwogICAgICAgICB9CiAg ICAgICAgIGJyZWFrOwogCiAjaWZkZWYgU0lHV0lOQ0gKICAgICBjYXNlIFNJR1dJTkNIOgogICAg ICAgICBhZGp1c3R3aW5zaXplKDEpOyAgLyogY2hlY2sgd2luZG93IHNpemUgYW5kIGFkanVzdCAq LwogCSh2b2lkKSBoYW5kbGV0cmFwKFNJR1dJTkNIKTsKICAgICAgICAgYnJlYWs7Cg== --94eb2c043be272bf70053de5495e--