From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2202 invoked by alias); 30 Sep 2016 13:30:44 -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: 39520 Received: (qmail 25830 invoked from network); 30 Sep 2016 13:30:44 -0000 X-Qmail-Scanner-Diagnostics: from mail-qt0-f170.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.216.170):SA:0(0.0/5.0):. Processed in 0.652471 secs); 30 Sep 2016 13:30:44 -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.216.170 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=RFmj/pJCB72XekokJQrL3RSkHweShebWHFQYHBsvefs=; b=wnwQ1kO9UMyyq3XcXnr9Ek/h68ycqSR63pSS/VfUT1ZTjQTSpi4+usr5zPpqpASium zFh2tekCJIn1/Xn/fPuiwcH6SSFyN9j+8P8yBhli8PJkqmlnyBk8YzZO29H93aZCI9vC HiezflV5PqmX8KIKaO0F6tb+M+1DEmH6Gvxki1d6ZuPiowKG+/OfKQsymKC5BFwE4CYk LgNptSYvaW/8aAqBYJnZGJB8lUwW/drcm7TGFzG44od6xBPaFae0CtEncn/65kISy0B/ 1u6I1WTMlCQ7IlLn9TvSS8sQbvzfQsYlAJxNaeRM6qlFAcD4xB2FqzfTXAbpvJiWqaN+ xQHQ== 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=RFmj/pJCB72XekokJQrL3RSkHweShebWHFQYHBsvefs=; b=megNEkf1ij+Edq199iz4PtjBJYaMrUllU6utX17VDE8ek8SWowJPf4/pnA/TztikFm NuId1/DvS3/d5sYt3XKys+Lr5xxfeeqLrhfR0NBWRp32D46eE/vySIfmOd/9byjI+aP0 RpuEeHIevV3hCfO7ouV71xfzrU/VUvou51dqoCEQoFFxs8zl+Gjhg8aKljiGSPP/Q3MN aCERQAJ2javcKXlVBiwOyjWHElAWtXjh+NgqPMhOpwpQqnL9OaQ4pwerExfI4/fbM0JQ CFj3ksi6+2XBm84BbOR1KMTvM54Ku0yPIejBG88YWmch0c+LWkdZ3XqvWBMgwRZ09hoS 1fuQ== X-Gm-Message-State: AA6/9Rk9V29scRqdl7iTqt8L1bnWYYenkrYNw3CjKNuqV7FUZr/WqEbTXyt4HWpR7DKFjYI2rI2eH1UAF273FQ== X-Received: by 10.237.51.101 with SMTP id u92mr6976540qtd.125.1475242236241; Fri, 30 Sep 2016 06:30:36 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <160924133140.ZM29034@torch.brasslantern.com> From: Sebastian Gniazdowski Date: Fri, 30 Sep 2016 15:30:15 +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=94eb2c123656733639053db99956 --94eb2c123656733639053db99956 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 30 September 2016 at 13:28, Sebastian Gniazdowski wrote: > But I've catched another thing. After Ctrl-C in .recursiveedit the > timeouts at select() in raw_getbyte() stop occuring. Here is simple I've investigated this further. There is calc_timeout() called in the select-loop: case ZTM_MAX: /*...*/ calc_timeout(&tmout, do_keytmout); // MY DEBUG FILE *_F =3D fopen("/tmp/recursive.txt", "a+"); fprintf( _F, "^^^ LOOP-CALLED calc_timeout: tmout.tp =3D=3D %d\n", tm= out.tp ); fclose(_F); break; The calc_timeout is capable of setting tmout.tp to ZTM_NONE. I have 3 debug prints: -- tmoutp->tp <- ZTM_NONE / calc_timeout( do_keytmout: 0 ), keytimeout: 4 =3D=3D CALC_TIMEOUT() one more chance (timedfns) -- CALC_TIMEOUT() !tfnode break Code of the last debug message is below: LinkNode tfnode =3D firstnode(timedfns); Timedfn tfdat; time_t diff, exp100ths; if (!tfnode) { // MY DEBUG FILE *_F =3D fopen("/tmp/recursive.txt", "a+"); fprintf( _F, "-- CALC_TIMEOUT() !tfnode break\n", tmoutp->exp100ths ); fclose(_F); break; } So, the linked list doesn't have any elements, and calc_timeout() exits with ZTM_NONE instead of ZTM_FUNC like it does all the time (so normally it executes further the for(;;) there and overwrites initial ZTM_NONE with ZTM_FUNC). This is after the lucky Ctrl-C. Wonder why no ZTM_KEY? Also, believe me, I occured 2 spontaneous stopping of timeouting right after shell started. Tried to catch this on asciinema but no luck. It looket like =E2=80=93 few timeouts occured and then they stopped. Didn't have precise debug prints then.. Best regards, Sebastian Gniazdowski --94eb2c123656733639053db99956 Content-Type: text/plain; charset=US-ASCII; name="rec3_edit.3.diff.txt" Content-Disposition: attachment; filename="rec3_edit.3.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_itpt26pa1 ZGlmZiAtLWdpdCBhL1NyYy9abGUvemxlX21haW4uYyBiL1NyYy9abGUvemxlX21haW4uYwppbmRl eCA5YTgzZDQxLi4xZjk5M2ZlIDEwMDY0NAotLS0gYS9TcmMvWmxlL3psZV9tYWluLmMKKysrIGIv U3JjL1psZS96bGVfbWFpbi5jCkBAIC00NTAsNDcgKzQ1MCw4MiBAQCBzdGF0aWMgdm9pZAogY2Fs Y190aW1lb3V0KHN0cnVjdCB6dG1vdXQgKnRtb3V0cCwgbG9uZyBkb19rZXl0bW91dCkKIHsKICAg ICBpZiAoZG9fa2V5dG1vdXQgJiYgKGtleXRpbWVvdXQgPiAwIHx8IGRvX2tleXRtb3V0IDwgMCkp IHsKIAlpZiAoZG9fa2V5dG1vdXQgPCAwKQogCSAgICB0bW91dHAtPmV4cDEwMHRocyA9ICh0aW1l X3QpLWRvX2tleXRtb3V0OwogCWVsc2UgaWYgKGtleXRpbWVvdXQgPiBaTUFYVElNRU9VVCAqIDEw MCAvKiAyNCBkYXlzIGZvciBhIGtleXByZXNzPz8/PyAqLykKIAkgICAgdG1vdXRwLT5leHAxMDB0 aHMgPSBaTUFYVElNRU9VVCAqIDEwMDsKIAllbHNlCiAJICAgIHRtb3V0cC0+ZXhwMTAwdGhzID0g a2V5dGltZW91dDsKIAl0bW91dHAtPnRwID0gWlRNX0tFWTsKLSAgICB9IGVsc2UKKyAgICAgICAg Ly8gTVkgREVCVUcKKyAgICAgICAgRklMRSAqX0YgPSBmb3BlbigiL3RtcC9yZWN1cnNpdmUudHh0 IiwgImErIik7CisgICAgICAgIGZwcmludGYoIF9GLCAiLS0gdG1vdXRwLT50cCA8LSBaVE1fS0VZ ICglZCkgLyBjYWxjX3RpbWVvdXQoKSB6bGVfbWFpbi5jXG4iLCB0bW91dHAtPmV4cDEwMHRocyAp OworICAgICAgICBmY2xvc2UoX0YpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE1ZIERFQlVH CisgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOwor ICAgICAgICBmcHJpbnRmKCBfRiwgIi0tIHRtb3V0cC0+dHAgPC0gWlRNX05PTkUgLyBjYWxjX3Rp bWVvdXQoIGRvX2tleXRtb3V0OiAlZCApLCBrZXl0aW1lb3V0OiAlZCAvIHpsZV9tYWluLmNcbiIs IGRvX2tleXRtb3V0ICk7CisgICAgICAgIGZjbG9zZShfRik7CisKIAl0bW91dHAtPnRwID0gWlRN X05PTkU7CisgICAgfQogCiAgICAgaWYgKHRpbWVkZm5zKSB7CisgICAgICAgIC8vIE1ZIERFQlVH CisgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOwor ICAgICAgICBmcHJpbnRmKCBfRiwgIj09IENBTENfVElNRU9VVCgpIG9uZSBtb3JlIGNoYW5jZSAo dGltZWRmbnMpXG4iLCB0bW91dHAtPmV4cDEwMHRocyApOworICAgICAgICBmY2xvc2UoX0YpOwog CWZvciAoOzspIHsKIAkgICAgTGlua05vZGUgdGZub2RlID0gZmlyc3Rub2RlKHRpbWVkZm5zKTsK IAkgICAgVGltZWRmbiB0ZmRhdDsKIAkgICAgdGltZV90IGRpZmYsIGV4cDEwMHRoczsKIAotCSAg ICBpZiAoIXRmbm9kZSkKKwkgICAgaWYgKCF0Zm5vZGUpIHsKKyAgICAgICAgICAgICAgICAvLyBN WSBERUJVRworICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZl LnR4dCIsICJhKyIpOworICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gQ0FMQ19USU1F T1VUKCkgIXRmbm9kZSBicmVha1xuIiwgdG1vdXRwLT5leHAxMDB0aHMgKTsKKyAgICAgICAgICAg ICAgICBmY2xvc2UoX0YpOwogCQlicmVhazsKKyAgICAgICAgICAgIH0KIAogCSAgICB0ZmRhdCA9 IChUaW1lZGZuKWdldGRhdGEodGZub2RlKTsKIAkgICAgZGlmZiA9IHRmZGF0LT53aGVuIC0gdGlt ZShOVUxMKTsKKworICAgICAgICAgICAgLy8gTVkgREVCVUcKKyAgICAgICAgICAgIEZJTEUgKl9G ID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOworICAgICAgICAgICAgZnByaW50 ZiggX0YsICItLSBDQUxDX1RJTUVPVVQoKSB0Zm5vZGUgVFJVRSBubyBicmVhayA+PiBESUZGPSVk IDw8XG4iLCBkaWZmICk7CisgICAgICAgICAgICBmY2xvc2UoX0YpOworCiAJICAgIGlmIChkaWZm IDwgMCkgewogCQkvKiBBbHJlYWR5IGR1ZTsgY2FsbCBpdCBhbmQgcmVzY2FuLiAqLwogCQl0ZmRh dC0+ZnVuYygpOwogCQljb250aW51ZTsKIAkgICAgfQogCiAJICAgIGlmIChkaWZmID4gWk1BWFRJ TUVPVVQpIHsKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgIEZJ TEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIpOworICAgICAgICAgICAg ICAgIGZwcmludGYoIF9GLCAiLS0gQ0FMQ19USU1FT1VUKCkgJWQgPiAlZCBaVE1fTUFYKCVkKVxu IiwgZGlmZiwgWk1BWFRJTUVPVVQsIFpUTV9NQVggKTsKKyAgICAgICAgICAgICAgICBmY2xvc2Uo X0YpOworCiAJCXRtb3V0cC0+ZXhwMTAwdGhzID0gWk1BWFRJTUVPVVQgKiAxMDA7CiAJCXRtb3V0 cC0+dHAgPSBaVE1fTUFYOwogCSAgICB9IGVsc2UgaWYgKGRpZmYgPiAwKSB7CiAJCWV4cDEwMHRo cyA9IGRpZmYgKiAxMDA7CiAJCWlmICh0bW91dHAtPnRwICE9IFpUTV9LRVkgfHwKIAkJICAgIGV4 cDEwMHRocyA8IHRtb3V0cC0+ZXhwMTAwdGhzKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE1Z IERFQlVHCisgICAgICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJz aXZlLnR4dCIsICJhKyIpOworICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKCBfRiwgIi0tIENB TENfVElNRU9VVCgpICVkICE9ICVkIHx8ICVkIDwgJWQgWlRNX0ZVTkMoJWQpXG4iLCB0bW91dHAt PnRwLCBaVE1fS0VZLCBleHAxMDB0aHMsIHRtb3V0cC0+ZXhwMTAwdGhzLCBaVE1fRlVOQyApOwor ICAgICAgICAgICAgICAgICAgICBmY2xvc2UoX0YpOworCiAJCSAgICB0bW91dHAtPmV4cDEwMHRo cyA9IGV4cDEwMHRoczsKIAkJICAgIHRtb3V0cC0+dHAgPSBaVE1fRlVOQzsKIAkJfQogCSAgICB9 CiAJICAgIGJyZWFrOwogCX0KIAkvKiBJbiBjYXNlIHdlIGNhbGxlZCBhIGZ1bmN0aW9uIHdoaWNo IG1lc3NlZCB1cCB0aGUgZGlzcGxheS4uLiAqLwogCWlmIChyZXNldG5lZWRlZCkKIAkgICAgenJl ZnJlc2goKTsKICAgICB9CkBAIC01MDgsMjAgKzU0MywyNCBAQCByYXdfZ2V0Ynl0ZShsb25nIGRv X2tleXRtb3V0LCBjaGFyICpjcHRyKQogICAgIHN0cnVjdCB0dHlpbmZvIHRpOwogI2VuZGlmCiAj aWZuZGVmIEhBVkVfUE9MTAogIyBpZmRlZiBIQVZFX1NFTEVDVAogICAgIGZkX3NldCBmb29mZCwg ZXJyZmQ7CiAgICAgRkRfWkVSTygmZXJyZmQpOwogIyBlbmRpZgogI2VuZGlmCiAKICAgICBjYWxj X3RpbWVvdXQoJnRtb3V0LCBkb19rZXl0bW91dCk7CisgICAgLy8gTVkgREVCVUcKKyAgICBGSUxF ICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICBmcHJpbnRmKCBf RiwgIi0tIElOSVQgdG1vdXQudHAoJWQpIFpUTV9OT05FKCVkKSBaVE1fS0VZKCVkKSAvIEJFR0lO IFJBV19HRVRCWVRFKCkgemxlX21haW4uY1xuIiwgdG1vdXQudHAsIFpUTV9OT05FLCBaVE1fS0VZ ICk7CisgICAgZmNsb3NlKF9GKTsKIAogICAgIC8qCiAgICAgICogSGFuZGxlIHRpbWVvdXRzIGFu ZCB3YXRjaGVkIGZkJ3MuICBJZiBhIHdhdGNoZWQgZmQgb3IgYSBmdW5jdGlvbgogICAgICAqIHRp bWVvdXQgdHJpZ2dlcnMgd2UgcmVzdGFydCBhbnkga2V5IHRpbWVvdXQuICBUaGlzIGlzIGxpa2Vs eSB0bwogICAgICAqIGJlIGhhcm1sZXNzOiB0aGUgY29tYmluYXRpb24gaXMgZXh0cmVtZWx5IHJh cmUgYW5kIGEgZnVuY3Rpb24KICAgICAgKiBpcyBsaWtlbHkgdG8gb2NjdXB5IHRoZSB1c2VyIGZv ciBhIGxpdHRsZSB3aGlsZSBhbnl3YXkuICBXZSB1c2VkCiAgICAgICogdG8gbWFrZSB0aW1lb3V0 cyB0YWtlIHByZWNlZGVuY2UsIGJ1dCB3ZSBjYW4ndCBub3cgdGhhdCB0aGUKICAgICAgKiB0aW1l b3V0cyBtYXkgYmUgZXh0ZXJuYWwsIHNvIHdlIG1heSBoYXZlIGJvdGggYSBwZXJtYW5lbnQgd2F0 Y2hlZAogICAgICAqIGZkIGFuZCBhIGxvbmctdGVybSB0aW1lb3V0LgogICAgICAqLwpAQCAtNjAw LDQzICs2MzksNzggQEAgcmF3X2dldGJ5dGUobG9uZyBkb19rZXl0bW91dCwgY2hhciAqY3B0cikK IAkJICAgIGlmIChmZCA+IGZkbWF4KQogCQkJZmRtYXggPSBmZDsKIAkJfQogCSAgICB9CiAJICAg IEZEX1pFUk8oJmVycmZkKTsKIAogCSAgICBpZiAodG1vdXQudHAgIT0gWlRNX05PTkUpIHsKIAkJ ZXhwaXJlX3R2LnR2X3NlYyA9IHRtb3V0LmV4cDEwMHRocyAvIDEwMDsKIAkJZXhwaXJlX3R2LnR2 X3VzZWMgPSAodG1vdXQuZXhwMTAwdGhzICUgMTAwKSAqIDEwMDAwTDsKIAkJdHZwdHIgPSAmZXhw aXJlX3R2OworCisgICAgICAgICAgICAgICAgLy8gTVkgREVCVUcKKyAgICAgICAgICAgICAgICBG SUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAg ICAgICBmcHJpbnRmKCBfRiwgIlxuLS0gdG1vdXRwICE9IFpUTV9OT05FIC8gcmF3X2dldGJ5dGUo KSB6bGVfbWFpbi5jXG4iICk7CisgICAgICAgICAgICAgICAgZmNsb3NlKF9GKTsKIAkgICAgfQot CSAgICBlbHNlCisJICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE1ZIERFQlVHCisgICAg ICAgICAgICAgICAgRklMRSAqX0YgPSBmb3BlbigiL3RtcC9yZWN1cnNpdmUudHh0IiwgImErIik7 CisgICAgICAgICAgICAgICAgZnByaW50ZiggX0YsICJcbi0tIEZJTkFMIChTVE9QKSB0bW91dHAg PT0gWlRNX05PTkUgLyByYXdfZ2V0Ynl0ZSgpIHpsZV9tYWluLmNcbiIgKTsKKyAgICAgICAgICAg ICAgICBmY2xvc2UoX0YpOworCiAJCXR2cHRyID0gTlVMTDsKKyAgICAgICAgICAgIH0KIAogCSAg ICB3aW5jaF91bmJsb2NrKCk7CiAJICAgIHNlbHJldCA9IHNlbGVjdChmZG1heCsxLCAoU0VMRUNU X0FSR18yX1QpICYgZm9vZmQsCiAJCQkgICAgTlVMTCwgTlVMTCwgdHZwdHIpOwogCSAgICB3aW5j aF9ibG9jaygpOwogIyBlbmRpZgogCSAgICAvKgogCSAgICAgKiBNYWtlIHN1cmUgYSB1c2VyIGlu dGVycnVwdCBnZXRzIHBhc3NlZCBvbiBzdHJhaWdodCBhd2F5LgogCSAgICAgKi8KLQkgICAgaWYg KHNlbHJldCA8IDAgJiYgKGVycmZsYWcgfHwgcmV0ZmxhZyB8fCBicmVha3MgfHwgZXhpdF9wZW5k aW5nKSkKKwkgICAgaWYgKHNlbHJldCA8IDAgJiYgKGVycmZsYWcgfHwgcmV0ZmxhZyB8fCBicmVh a3MgfHwgZXhpdF9wZW5kaW5nKSkgeworICAgICAgICAgICAgICAgIC8vIE1ZIERFQlVHCisgICAg ICAgICAgICAgICAgRklMRSAqX0YgPSBmb3BlbigiL3RtcC9yZWN1cnNpdmUudHh0IiwgImErIik7 CisgICAgICAgICAgICAgICAgZnByaW50ZiggX0YsICItLSBEb2luZyBicmVhayAvIHpsZV9tYWlu LmM6IGVycmZsYWc6ICVkLCByZXRmbGFnOiAlZCwgYnJlYWtzOiAlZCwgZXhpdF9wZW5kaW5nOiAl ZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJmbGFnLCByZXRmbGFnLCBicmVh a3MsIGV4aXRfcGVuZGluZyApOworICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CiAJCWJyZWFr OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAg ICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJhKyIp OworICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gTk9UIGRvaW5nIGJyZWFrIC8gemxl X21haW4uYzogZXJyZmxhZzogJWQsIHJldGZsYWc6ICVkLCBicmVha3M6ICVkLCBleGl0X3BlbmRp bmc6ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmZsYWcsIHJldGZsYWcs IGJyZWFrcywgZXhpdF9wZW5kaW5nICk7CisgICAgICAgICAgICAgICAgZmNsb3NlKF9GKTsKKyAg ICAgICAgICAgIH0KKwogCSAgICAvKgogCSAgICAgKiBUcnkgdG8gYXZvaWQgZXJyb3JzIG9uIG91 ciBzcGVjaWFsIGZkJ3MgZnJvbQogCSAgICAgKiBtZXNzaW5nIHVwIHJlYWRzIGZyb20gdGhlIHRl cm1pbmFsLiAgVHJ5IGZpcnN0CiAJICAgICAqIHdpdGggYWxsIGZkcywgdGhlbiB0cnkgdW5zZXR0 aW5nIHRoZSBzcGVjaWFsIG9uZXMuCiAJICAgICAqLwogCSAgICBpZiAoc2VscmV0IDwgMCAmJiAh ZXJydHJ5KSB7CisgICAgICAgICAgICAgICAgLy8gTVkgREVCVUcKKyAgICAgICAgICAgICAgICBG SUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAg ICAgICBmcHJpbnRmKCBfRiwgIi0tIFRyeWluZyBhZ2FpbiAhZXJydHJ5IC8gemxlX21haW4uY1xu IiApOworICAgICAgICAgICAgICAgIGZjbG9zZShfRik7CisKIAkJZXJydHJ5ID0gMTsKIAkJY29u dGludWU7Ci0JICAgIH0KKwkgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJV RworICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIs ICJhKyIpOworICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gIFBhc3NlZCAhZXJydHJ5 KGVycnRyeTolZCkgLyB6bGVfbWFpbi5jXG4iLCBlcnJ0cnkgKTsKKyAgICAgICAgICAgICAgICBm Y2xvc2UoX0YpOworICAgICAgICAgICAgfQorCiAJICAgIGlmIChzZWxyZXQgPT0gMCkgewogCQkv KgogCQkgKiBOb3RoaW5nIHJlYWR5IGFuZCBubyBlcnJvciwgc28gd2UgdGltZWQgb3V0LgogCQkg Ki8KIAkJc3dpdGNoICh0bW91dC50cCkgewogCQljYXNlIFpUTV9OT05FOgogCQkgICAgLyoga2Vl cHMgY29tcGlsZXIgaGFwcHkgaWYgbm90IGRlYnVnZ2luZyAqLwogI2lmZGVmIERFQlVHCiAJCSAg ICBkcHV0cygiQlVHOiB0aW1lb3V0IGZpcmVkIHdpdGggbm8gdGltZW91dCBzZXQuIik7CiAjZW5k aWYKQEAgLTY2OSwyMCArNzQzLDI0IEBAIHJhd19nZXRieXRlKGxvbmcgZG9fa2V5dG1vdXQsIGNo YXIgKmNwdHIpCiAJCWNhc2UgWlRNX01BWDoKIAkJICAgIC8qCiAJCSAgICAgKiBSZWFjaGVkIHRo ZSBsaW1pdCBvZiBvdXIgcmFuZ2UsIGJ1dCBub3QgdGhlCiAJCSAgICAgKiBhY3R1YWwgdGltZW91 dDsgcmVjYWxjdWxhdGUgdGhlIHRpbWVvdXQuCiAJCSAgICAgKiBXZSdyZSBjaGVhdGluZyB3aXRo IHRoZSBrZXkgdGltZW91dCBoZXJlOgogCQkgICAgICogaWYgb25lIGNsYXNoZWQgd2l0aCBhIGZ1 bmN0aW9uIHRpbWVvdXQgd2UKIAkJICAgICAqIHJlY29uc2lkZXIgdGhlIGtleSB0aW1lb3V0IGZy b20gc2NyYXRjaC4KIAkJICAgICAqIFRoZSBlZmZlY3Qgb2YgdGhpcyBpcyBtaWNyb3Njb3BpYy4K IAkJICAgICAqLwogCQkgICAgY2FsY190aW1lb3V0KCZ0bW91dCwgZG9fa2V5dG1vdXQpOworICAg ICAgICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgICAgICBGSUxFICpf RiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgICAgICAg ICAgZnByaW50ZiggX0YsICJeXl4gTE9PUC1DQUxMRUQgY2FsY190aW1lb3V0OiB0bW91dC50cCA9 PSAlZCAvIHpsZV9tYWluLmNcbiIsIHRtb3V0LnRwICk7CisgICAgICAgICAgICAgICAgICAgIGZj bG9zZShfRik7CiAJCSAgICBicmVhazsKIAkJfQogCQkvKgogCQkgKiBJZiB3ZSBoYW5kbGVkIHRo ZSB0aW1lb3V0IHN1Y2Nlc3NmdWxseSwKIAkJICogY2Fycnkgb24uCiAJCSAqLwogCQlpZiAoc2Vs cmV0ID09IDApCiAJCSAgICBjb250aW51ZTsKIAkgICAgfQogCSAgICAvKiBJZiBlcnJvciBvciB1 bmhhbmRsZWQgdGltZW91dCwgZ2l2ZSB1cC4gKi8KQEAgLTg4OCwyMiArOTY2LDM2IEBAIGdldGJ5 dGUobG9uZyBkb19rZXl0bW91dCwgaW50ICp0aW1lb3V0KQogCQkgICB0aGUgY291bnRlciAoaWNu dCkgc28gdGhhdCB0aGlzIGhhcHBlbnMgMjAgdGltZXMgYW5kIHRoYW4KIAkJICAgdGhlIHNoZWxs IGdpdmVzIHVwICh5ZXMsIHRoaXMgaXMgYSBiaXQgZGlydHkuLi4pLiAqLwogCQlpZiAoKHpsZXJl YWRmbGFncyAmIFpMUkZfSUdOT1JFRU9GKSAmJiBpY250KysgPCAyMCkKIAkJICAgIGNvbnRpbnVl OwogCQlzdG9wbXNnID0gMTsKIAkJemV4aXQoMSwgMCk7CiAJICAgIH0KIAkgICAgaWNudCA9IDA7 CiAJICAgIGlmIChlcnJubyA9PSBFSU5UUikgewogCQlkaWUgPSAwOworICAgICAgICAgICAgICAg IHN0YXRpYyBpbnQgY291bnRlciA9IDA7CisKKyAgICAgICAgICAgICAgICAvLyBNWSBERUJVRwor ICAgICAgICAgICAgICAgIEZJTEUgKl9GID0gZm9wZW4oIi90bXAvcmVjdXJzaXZlLnR4dCIsICJh KyIpOworICAgICAgICAgICAgICAgIGZwcmludGYoIF9GLCAiLS0gR290IEVJTlRSICVkXG4iLCAr K2NvdW50ZXIgKTsKKyAgICAgICAgICAgICAgICBmY2xvc2UoX0YpOworCiAJCWlmICghZXJyZmxh ZyAmJiAhcmV0ZmxhZyAmJiAhYnJlYWtzICYmICFleGl0X3BlbmRpbmcpCisgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAvLyBNWSBERUJVRworICAgICAgICAgICAgICAgICAg ICBGSUxFICpfRiA9IGZvcGVuKCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAg ICAgICAgICAgICAgZnByaW50ZiggX0YsICItLSBDb250aW51aW5nIGRlc3BpdGUgRUlOVFIgLyB6 bGVfbWFpbi5jOiBlcnJmbGFnOiAlZCwgcmV0ZmxhZzogJWQsIGJyZWFrczogJWQsIGV4aXRfcGVu ZGluZzogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmZsYWcsIHJl dGZsYWcsIGJyZWFrcywgZXhpdF9wZW5kaW5nICk7CisgICAgICAgICAgICAgICAgICAgIGZjbG9z ZShfRik7CiAJCSAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CiAJCWVycmZsYWcgJj0g fkVSUkZMQUdfRVJST1I7CiAJCWJyZWFrcyA9IG9icmVha3M7CiAJCWVycm5vID0gb2xkX2Vycm5v OwogCQlyZXR1cm4gbGFzdGNoYXIgPSBFT0Y7CiAJICAgIH0gZWxzZSBpZiAoZXJybm8gPT0gRVdP VUxEQkxPQ0spIHsKIAkJZmNudGwoMCwgRl9TRVRGTCwgMCk7CiAJICAgIH0gZWxzZSBpZiAoZXJy bm8gPT0gRUlPICYmICFkaWUpIHsKIAkJcmV0ID0gb3B0c1tNT05JVE9SXTsKIAkJb3B0c1tNT05J VE9SXSA9IDE7CiAJCWF0dGFjaHR0eShteXBncnApOwpAQCAtMTExNSwyMCArMTIwNywyNCBAQCB6 bGVjb3JlKHZvaWQpCiAJCWlmIChlb2ZzZW50KQogCQkgICAgYnJlYWs7CiAJICAgIH0KIAkgICAg aGFuZGxlcHJlZml4ZXMoKTsKIAkgICAgLyogZm9yIHZpIG1vZGUsIG1ha2Ugc3VyZSB0aGUgY3Vy c29yIGlzbid0IHNvbWV3aGVyZSBpbGxlZ2FsICovCiAJICAgIGlmIChpbnZpY21kbW9kZSgpICYm IHpsZWNzID4gZmluZGJvbCgpICYmCiAJCSh6bGVjcyA9PSB6bGVsbCB8fCB6bGVsaW5lW3psZWNz XSA9PSBaV0MoJ1xuJykpKQogCQlERUNDUygpOwogCSAgICBoYW5kbGV1bmRvKCk7CiAJfSBlbHNl IHsKKyAgICAgICAgICAgIC8vIE1ZIERFQlVHCisgICAgICAgICAgICBGSUxFICpfRiA9IGZvcGVu KCIvdG1wL3JlY3Vyc2l2ZS50eHQiLCAiYSsiKTsKKyAgICAgICAgICAgIGZwcmludGYoIF9GLCAi LS0gU2V0dGluZyBlcnJvciBpbiB6bGVjb3JlLmNcbiIgKTsKKyAgICAgICAgICAgIGZjbG9zZShf Rik7CiAJICAgIGVycmZsYWcgfD0gRVJSRkxBR19FUlJPUjsKIAkgICAgYnJlYWs7CiAJfQogCiAJ cmVkcmF3aG9vaygpOwogI2lmZGVmIEhBVkVfUE9MTAogCWlmIChiYXVkICYmICEobGFzdGNtZCAm IFpMRV9NRU5VQ01QKSkgewogCSAgICBzdHJ1Y3QgcG9sbGZkIHBmZDsKIAkgICAgaW50IHRvID0g Y29zdCAqIGNvc3RtdWx0IC8gMTAwMDsgLyogbWlsbGlzZWNvbmRzICovCiAK --94eb2c123656733639053db99956--