From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#26682: 26.0.50; Error at startup with minibuffer-only frame Date: Fri, 28 Apr 2017 19:44:28 +0200 Message-ID: <59037F7C.8080107@gmx.at> References: <83pofwnc4k.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050407010108010006080005" X-Trace: blaine.gmane.org 1493401556 31548 195.159.176.226 (28 Apr 2017 17:45:56 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 28 Apr 2017 17:45:56 +0000 (UTC) Cc: 26682@debbugs.gnu.org To: Eli Zaretskii , Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Apr 28 19:45:41 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d49xa-0007x9-Ba for geb-bug-gnu-emacs@m.gmane.org; Fri, 28 Apr 2017 19:45:38 +0200 Original-Received: from localhost ([::1]:38206 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d49xg-0004He-8M for geb-bug-gnu-emacs@m.gmane.org; Fri, 28 Apr 2017 13:45:44 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45563) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d49x7-0003zH-6t for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 13:45:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d49x2-0002nv-8Y for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 13:45:09 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:46775) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d49x2-0002nq-4R for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 13:45:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1d49x0-0005Tp-5W for bug-gnu-emacs@gnu.org; Fri, 28 Apr 2017 13:45:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 28 Apr 2017 17:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26682 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 26682-submit@debbugs.gnu.org id=B26682.149340149021030 (code B ref 26682); Fri, 28 Apr 2017 17:45:02 +0000 Original-Received: (at 26682) by debbugs.gnu.org; 28 Apr 2017 17:44:50 +0000 Original-Received: from localhost ([127.0.0.1]:44974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d49wo-0005T8-Cs for submit@debbugs.gnu.org; Fri, 28 Apr 2017 13:44:50 -0400 Original-Received: from mout.gmx.net ([212.227.17.20]:49435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d49wm-0005Sv-7E for 26682@debbugs.gnu.org; Fri, 28 Apr 2017 13:44:49 -0400 Original-Received: from [192.168.1.100] ([213.162.68.65]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LhTjQ-1dqdrJ0EhE-00mZUY; Fri, 28 Apr 2017 19:44:37 +0200 In-Reply-To: <83pofwnc4k.fsf@gnu.org> X-Provags-ID: V03:K0:HhtAmGkpx/KB9I3pNOdtZ/CHlYWol12imtlf0t2wE1b8UejWNBA LZpjgTz4SkNCmZwyS+FYqIX7T6oFYDMrxGQ/CIQ2VQN/HpQs0hrJ672ziEXEZq0Tlw7CQU3 H2Wc4Ytnr7d+5v8DXN2+jG26zNMsI2djWgPCInqEa+SZ9aKL6GnKYPZ1+OQXmxXvfXduDVo VHr34TEbuSa8EP4vu6pZQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:zZ8esGI0QMM=:QhfC6QvQSyNXbmiWC/fzMG emqLcM24q/bVX5AU8HyY1cxkBrzxyIo6jySjmriBlPMvG4ca3xMHz2Fa7l1GvhJyiF6Mk9Zmx QPelG6GOi8Rr5hqxL5iPIzuPhHnLoTXk4yxZb9JPqpmu8+9lwjInBNRLvIT3VG87EX4X6w0FW u7xRDwztdKodCDV2kLcebYlTihuJDnPqrJXseYd42h0B84qanoSN+pEhkxRve9PPg1t4oFAFo zrp7Vgmfvdd4WxHt5CQYgFYALM3/M2Z8HTDUIZ2lztRF6D1SF6ZHq53tY03DykR1yqmIiErKN G2EdQbBtUWzsIFvb7b2B22tpnulWhnqt5FVZsSa80TI2rLDxzFLGdu3xjbUjolVkeWHq5ri5u K31ZXPlKvJEU9vQ0UsFyodhM7dGwvzSdf4Bh4nxSnoAeoeL/jDY53B8wOWYXH7xGeB28DrlWf /IWU4n9yKzWSLyttVC7sR+MCqZCdUFmq3B1ApP6v++GI7mosF5SSaST3W1peOW3rdI4Q3vXSy vEgQq/urVjiLUN9EzN5Nvnf+kp8tqeyvpqJD3XaHBeWUoONagICxEjuV8D/QQnYcKpmQdREFr /L7F2X8jb9Krg6jhP9WXon4szeFUnEIRnrJtBG+lbontQGYONLnq3bD4QKDZmeJR3cGjmjf4K d5uQK4xFqBvCpEHmEP+KKEnlpYRL0OWlhI+HF+r9LPzwTh0qxoPcq1Yu94ibRa4cf1tjMIueH YAXp2r07mN0gVO0fJE9qxE+oG7KK2n9Yzx0zUc4KmB0XuZtHE4xfiEfIjkE= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:132083 Archived-At: This is a multi-part message in MIME format. --------------050407010108010006080005 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable > This seems to come from the following part at the beginning of > delete_frame: > > else if (!EQ (force, Qnoelisp) && !other_frames (f, !NILP (force)))= > { > if (NILP (force)) > error ("Attempt to delete the sole visible or iconified frame"); > else > error ("Attempt to delete the only frame"); > } > > The original code there was: > > if (NILP (force) && !other_visible_frames (f)) > error ("Attempt to delete the sole visible or iconified frame"); > > Martin, why did you decide to disallow frame deletion when the FORCE > argument is t? This makes delete-frame violate its documented > contract, whereby if FORCE =3D=3D Qt, the fact that other frames are n= ot > visible doesn't count. I probably was confused. One problem I wanted to fix is the following scenario with Emacs 25.2: With emacs -Q evaluate the following four forms in row: (defvar old-frame (selected-frame)) (defvar new-frame (make-frame)) (add-hook 'delete-frame-functions (lambda (f) (delete-frame new-frame))) (delete-frame old-frame) This gets me here: Program received signal SIGTRAP, Trace/breakpoint trap. 0x7c911231 in ntdll!DbgUiConnectToDbg () from C:\WINDOWS\system32\ntdll.d= ll (gdb) bt #0 0x7c911231 in ntdll!DbgUiConnectToDbg () from C:\WINDOWS\system32\ntd= ll.dll #1 0x012d28dd in emacs_abort () at w32fns.c:9830 #2 0x01323e14 in w32_reset_fringes () at fringe.c:1777 #3 0x012f1489 in x_delete_display (dpyinfo=3D0x2b1bc60) at w32term.c:694= 1 #4 0x012f1247 in x_delete_terminal (terminal=3D0x1a560b0) at w32term.c:6= 847 #5 0x01130bbe in Fdelete_terminal (terminal=3D..., force=3D...) at termi= nal.c:390 #6 0x01019d9c in delete_frame (frame=3D..., force=3D...) at frame.c:1731= #7 0x0101a55f in Fdelete_frame (frame=3D..., force=3D...) at frame.c:184= 2 #8 0x0121f0c2 in eval_sub (form=3D...) at eval.c:2174 #9 0x0121e235 in Feval (form=3D..., lexical=3D...) at eval.c:1993 #10 0x0122109f in Ffuncall (nargs=3D3, args=3D0x82e0e8) at eval.c:2701 #11 0x0127dbf5 in exec_byte_code (bytestr=3D..., vector=3D..., maxdepth=3D= =2E.., args_template=3D..., nargs=3D1, args=3D0x82e690) at bytecode.c:880= #12 0x01221e60 in funcall_lambda (fun=3D..., nargs=3D1, arg_vector=3D0x82= e688) at eval.c:2860 #13 0x0122146e in Ffuncall (nargs=3D2, args=3D0x82e680) at eval.c:2747 #14 0x0127dbf5 in exec_byte_code (bytestr=3D..., vector=3D..., maxdepth=3D= =2E.., args_template=3D..., nargs=3D1, args=3D0x82ed78) at bytecode.c:880= #15 0x01221e60 in funcall_lambda (fun=3D..., nargs=3D1, arg_vector=3D0x82= ed70) at eval.c:2860 #16 0x0122146e in Ffuncall (nargs=3D2, args=3D0x82ed68) at eval.c:2747 #17 0x01213432 in Ffuncall_interactively (nargs=3D2, args=3D0x82ed68) at = callint.c:252 #18 0x01220f0f in Ffuncall (nargs=3D3, args=3D0x82ed60) at eval.c:2678 #19 0x0121665e in Fcall_interactively (function=3D..., record_flag=3D...,= keys=3D...) at callint.c:843 #20 0x012210f6 in Ffuncall (nargs=3D4, args=3D0x82f1c8) at eval.c:2705 #21 0x0127dbf5 in exec_byte_code (bytestr=3D..., vector=3D..., maxdepth=3D= =2E.., args_template=3D..., nargs=3D1, args=3D0x82f780) at bytecode.c:880= #22 0x01221e60 in funcall_lambda (fun=3D..., nargs=3D1, arg_vector=3D0x82= f778) at eval.c:2860 #23 0x0122146e in Ffuncall (nargs=3D2, args=3D0x82f770) at eval.c:2747 #24 0x012207bf in call1 (fn=3D..., arg1=3D...) at eval.c:2557 #25 0x01151cff in command_loop_1 () at keyboard.c:1479 #26 0x0121bd32 in internal_condition_case (bfun=3D0x1151233 , handlers=3D..., hfun=3D0x11504cb ) at eval.c:1314 #27 0x01150ccd in command_loop_2 (ignore=3D...) at keyboard.c:1107 #28 0x0121aed6 in internal_catch (tag=3D..., func=3D0x1150c91 , arg=3D...) at eval.c:1079 #29 0x01150c53 in command_loop () at keyboard.c:1086 #30 0x0114fee3 in recursive_edit_1 () at keyboard.c:692 #31 0x011501a4 in Frecursive_edit () at keyboard.c:763 #32 0x0114d8ba in main (argc=3D2, argv=3D0xa32658) at emacs.c:1626 Lisp Backtrace: "delete-frame" (0x82ded0) "eval" (0x82e0f0) "elisp--eval-last-sexp" (0x82e688) "eval-last-sexp" (0x82ed70) "funcall-interactively" (0x82ed68) "call-interactively" (0x82f1d0) "command-execute" (0x82f778) Admittedly calling =E2=80=98delete-frame=E2=80=99 from =E2=80=98delete-fr= ame-functions=E2=80=99 is not nice. But with child frames and the =E2=80=98delete-before=E2=80=99 para= meter it would be easy to get a similar crash with a less provocative setup. So I started to check for the existence of other frames twice and be more rigorous. Too rigorous, as Stefan's scenario demonstrates. I attach a presumptive patch which should handle Stefan's setup and also a few =E2=80=98make-frame-invisible=E2=80=99 calls which were not handled= correctly. Please try it. It needs some further testing before I can commit it. As a matter of fact, I was not able to repeat Stefan's scenario on GNU/Linux - the initial frame was always deleted orderly. But the behavior is easily reproducible on Windows. On Windows, however, even with my patch, one out of ten times starting Emacs with Stefan's command line hangs it with the initial frame visible and I have to quit with C-g. More precisely, it hangs in =E2=80=98frame-notice-user-settings=E2=80=99 = in the while loop below ;; MS-Windows needs this to avoid inflooping below. (if (eq system-type 'windows-nt) (sit-for 0 t)) ;; If the frame isn't visible yet, wait till it is. ;; If the user has to position the window, ;; Emacs doesn't know its real position until ;; the frame is seen to be visible. (while (not (cdr (assq 'visibility (frame-parameters frame-initial-frame)))) (sleep-for 1)) and it does so always when I run Emacs under GDB. I don't yet know why it hangs: The request to make the frame visible is posted orderly but somehow SET_FRAME_VISIBLE gets never executed. Can you reproduce it? Note also that the patch restores the Emasc 25.2 behavior where deleting the last minibuffer frame with a mouse click raises the "surrogate ..." error. My earlier changes did =E2=80=98save-buffers-kill-emacs=E2=80=99 = in that case. martin --------------050407010108010006080005 Content-Type: text/plain; charset=windows-1252; name="frame.c.el.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="frame.c.el.diff" ZGlmZiAtLWdpdCBhL2xpc3AvZnJhbWUuZWwgYi9saXNwL2ZyYW1lLmVsCmluZGV4IGNlYzI2 MjQuLjhkYWQ2M2YgMTAwNjQ0Ci0tLSBhL2xpc3AvZnJhbWUuZWwKKysrIGIvbGlzcC9mcmFt ZS5lbApAQCAtMTIzLDggKzEyMyw2IEBAIGhhbmRsZS1kZWxldGUtZnJhbWUKICAgICAgICAg ICAgIDs7IG5vdCBhIGNoaWxkIGZyYW1lLgogICAgICAgICAgICAgKHdoZW4gKGFuZCAobm90 IChlcSBmcmFtZS0xIGZyYW1lKSkKICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lLXZp c2libGUtcCBmcmFtZS0xKQotICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LWxpdmUt cCAobWluaWJ1ZmZlci13aW5kb3cgZnJhbWUtMSkpCi0gICAgICAgICAgICAgICAgICAgICAg IChlcSAod2luZG93LWZyYW1lIChtaW5pYnVmZmVyLXdpbmRvdyBmcmFtZS0xKSkgZnJhbWUt MSkKICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZnJhbWUtcGFyZW50IGZyYW1lLTEp KQogICAgICAgICAgICAgICAgICAgICAgICAobm90IChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUt MSAnZGVsZXRlLWJlZm9yZSkpKQogICAgICAgICAgICAgICAodGhyb3cgJ290aGVyLWZyYW1l IHQpKSkpCmRpZmYgLS1naXQgYS9zcmMvZnJhbWUuYyBiL3NyYy9mcmFtZS5jCmluZGV4IDY4 MWEyNDUuLmIxMDhlNDUgMTAwNjQ0Ci0tLSBhL3NyYy9mcmFtZS5jCisrKyBiL3NyYy9mcmFt ZS5jCkBAIC0xNTYwLDE1ICsxNTYwLDE2IEBAIG9mIHRoZW0gKHRoZSBzZWxlY3RlZCB0ZXJt aW5hbCBmcmFtZSkgaXMgYWN0dWFsbHkgZGlzcGxheWVkLgogICogUmV0dXJuIHRydWUgaWYg dGhlcmUgZXhpc3RzIGF0IGxlYXN0IG9uZSB2aXNpYmxlIG9yIGljb25pZmllZCBmcmFtZQog ICogYnV0IEYuICBSZXR1cm4gZmFsc2Ugb3RoZXJ3aXNlLgogICoKLSAqIEFsd2F5cyByZXR1 cm4gZmFsc2Ugd2hlbiBhbGwgcmVtYWluaW5nIGZyYW1lcyBhcmUgZWl0aGVyIHRvb2x0aXAg b3IKLSAqIGNoaWxkIGZyYW1lcyBvciBmcmFtZXMgd2l0aCBhIG5vbi1uaWwgYGRlbGV0ZS1i ZWZvcmUnIHBhcmFtZXRlci4gIElmCi0gKiBJTlZJU0lCTEUgaXMgZmFsc2UsIGFsc28gcmV0 dXJuIGZhbHNlIHdoZW4gdGhlIG1pbmlidWZmZXIgd2luZG93IG9mCi0gKiBhbGwgcmVtYWlu aW5nIGZyYW1lcyBpcyBvbiBGLgotCisgKiBJTlZJU0lCTEUgdHJ1ZSBtZWFucyB3ZSBhcmUg Y2FsbGVkIGZyb20gbWFrZV9mcmFtZV9pbnZpc2libGUgd2hlcmUKKyAqIHN1Y2ggYSBmcmFt ZSBtdXN0IGJlIHZpc2libGUgb3IgaWNvbmlmaWVkLiAgSU5WSVNJQkxFIG5pbCBtZWFucyB3 ZQorICogYXJlIGNhbGxlZCBmcm9tIGRlbGV0ZV9mcmFtZS4gIEluIHRoYXQgY2FzZSBGT1JD RSB0cnVlIG1lYW5zIHRoYXQgdGhlCisgKiB2aXNpYmlsaXR5IHN0YXR1cyBvZiBzdWNoIGEg ZnJhbWUgY2FuIGJlIGlnbm9yZWQuCisgKgogICogSWYgRiBpcyB0aGUgdGVybWluYWwgZnJh bWUgYW5kIHdlIGFyZSB1c2luZyBYLCByZXR1cm4gdHJ1ZSBpZiBhdAotICogbGVhc3Qgb25l IFggZnJhbWUgZXhpc3RzLiAgKi8KKyAqIGxlYXN0IG9uZSBYIGZyYW1lIGV4aXN0cy4KKyAq Lwogc3RhdGljIGJvb2wKLW90aGVyX2ZyYW1lcyAoc3RydWN0IGZyYW1lICpmLCBib29sIGlu dmlzaWJsZSkKK290aGVyX2ZyYW1lcyAoc3RydWN0IGZyYW1lICpmLCBib29sIGludmlzaWJs ZSwgYm9vbCBmb3JjZSkKIHsKICAgTGlzcF9PYmplY3QgZnJhbWVzLCBmcmFtZSwgZnJhbWUx OwogICBzdHJ1Y3QgZnJhbWUgKmYxOwpAQCAtMTU5MSwyMyArMTU5MiwyMCBAQCBvZiB0aGVt ICh0aGUgc2VsZWN0ZWQgdGVybWluYWwgZnJhbWUpIGlzIGFjdHVhbGx5IGRpc3BsYXllZC4K IAkgICAgeF9zeW5jIChmMSk7CiAjZW5kaWYKIAkgIGlmIChOSUxQIChGZnJhbWVfcGFyYW1l dGVyIChmcmFtZTEsIFF0b29sdGlwKSkKLQkgICAgICAvKiBUb29sdGlwcyBhbmQgY2hpbGQg ZnJhbWVzIGRvbid0IGNvdW50LiAgKi8KKwkgICAgICAvKiBUb29sdGlwcyBhbmQgY2hpbGQg ZnJhbWVzIGNvdW50IG5laXRoZXIgZm9yCisJCSBpbnZpc2liaWxpdHkgbm9yIGZvciBkZWxl dGlvbnMuICAqLwogCSAgICAgICYmICFGUkFNRV9QQVJFTlRfRlJBTUUgKGYxKQogCSAgICAg IC8qIEZyYW1lcyB3aXRoIGEgbm9uLW5pbCBgZGVsZXRlLWJlZm9yZScgcGFyYW1ldGVyIGRv bid0Ci0JCSBjb3VudCAtIGVpdGhlciB0aGV5IGRlcGVuZCBvbiB1cyBvciB0aGV5IGRlcGVu ZCBvbiBhCi0JCSBmcmFtZSB0aGF0IHdlIHdpbGwgaGF2ZSB0byBmaW5kIHJpZ2h0IGhlcmUu ICAqLwotCSAgICAgICYmIE5JTFAgKGdldF9mcmFtZV9wYXJhbSAoZjEsIFFkZWxldGVfYmVm b3JlKSkKLQkgICAgICAvKiBGcmFtZXMgd2hvc2UgbWluaWJ1ZmZlciB3aW5kb3cgaXMgb24g RiBkb24ndCBjb3VudAotCQkgdW5sZXNzIElOVklTSUJMRSBpcyBzZXQgLSBpbiB0aGF0IGNh c2UgRiBpcyBlaXRoZXIgbWFkZQotCQkgaW52aXNpYmxlIGFuZCBtYXkgYmUgYXV0b3JhaXNl ZCBmcm9tIHN1Y2ggYSBmcmFtZSBvcgotCQkgdGhlIEZPUkNFIGFyZ3VtZW50IG9mIGRlbGV0 ZV9mcmFtZSB3YXMgbm9uLW5pbC4gICovCi0JICAgICAgJiYgKGludmlzaWJsZSB8fCBOSUxQ IChtaW5pYnVmZmVyX3dpbmRvdykKLQkJICB8fCAhRVEgKEZSQU1FX01JTklCVUZfV0lORE9X IChmMSksIG1pbmlidWZmZXJfd2luZG93KSkKLQkgICAgICAvKiBBdCBsZWFzdCBvbmUgdmlz aWJsZS9pY29uaWZpZWQgZnJhbWUgbXVzdCByZW1haW4uICAqLworCQkgY291bnQgZm9yIGRl bGV0aW9ucy4gICovCisJICAgICAgJiYgKGludmlzaWJsZSB8fCBOSUxQIChnZXRfZnJhbWVf cGFyYW0gKGYxLCBRZGVsZXRlX2JlZm9yZSkpKQorCSAgICAgIC8qIEZvciBpbnZpc2liaWxp dHkgYW5kIG5vcm1hbCBkZWxldGlvbnMsIGF0IGxlYXN0IG9uZQorCQkgdmlzaWJsZSBvciBp Y29uaWZpZWQgZnJhbWUgbXVzdCByZW1haW4gKEJ1ZyMyNjY4MikuICAqLwogCSAgICAgICYm IChGUkFNRV9WSVNJQkxFX1AgKGYxKSB8fCBGUkFNRV9JQ09OSUZJRURfUCAoZjEpCi0JCSAg LyogQWxsb3cgZGVsZXRpbmcgdGhlIHRlcm1pbmFsIGZyYW1lIHdoZW4gYXQgbGVhc3Qgb25l Ci0JCSAgICAgWCBmcmFtZSBleGlzdHMuICAqLwotCQkgIHx8IChGUkFNRV9XSU5ET1dfUCAo ZjEpICYmICFGUkFNRV9XSU5ET1dfUCAoZikpKSkKKwkJICB8fCAoIWludmlzaWJsZQorCQkg ICAgICAmJiAoZm9yY2UKKwkJCSAgLyogQWxsb3cgZGVsZXRpbmcgdGhlIHRlcm1pbmFsIGZy YW1lIHdoZW4gYXQKKwkJCSAgICAgbGVhc3Qgb25lIFggZnJhbWUgZXhpc3RzLiAgKi8KKwkJ CSAgfHwgKEZSQU1FX1dJTkRPV19QIChmMSkgJiYgIUZSQU1FX1dJTkRPV19QIChmKSkpKSkp CiAJICAgIHJldHVybiB0cnVlOwogCX0KICAgICB9CkBAIC0xNjgwLDcgKzE2NzgsNyBAQCBv ZiB0aGVtICh0aGUgc2VsZWN0ZWQgdGVybWluYWwgZnJhbWUpIGlzIGFjdHVhbGx5IGRpc3Bs YXllZC4KCiAgIGlmICghRlJBTUVfTElWRV9QIChmKSkKICAgICByZXR1cm4gUW5pbDsKLSAg ZWxzZSBpZiAoIUVRIChmb3JjZSwgUW5vZWxpc3ApICYmICFvdGhlcl9mcmFtZXMgKGYsICFO SUxQIChmb3JjZSkpKQorICBlbHNlIGlmICghRVEgKGZvcmNlLCBRbm9lbGlzcCkgJiYgIW90 aGVyX2ZyYW1lcyAoZiwgZmFsc2UsIHRydWUpKQogICAgIHsKICAgICAgIGlmIChOSUxQIChm b3JjZSkpCiAJZXJyb3IgKCJBdHRlbXB0IHRvIGRlbGV0ZSB0aGUgc29sZSB2aXNpYmxlIG9y IGljb25pZmllZCBmcmFtZSIpOwpAQCAtMTc1Miw3ICsxNzUwLDcgQEAgb2YgdGhlbSAodGhl IHNlbGVjdGVkIHRlcm1pbmFsIGZyYW1lKSBpcyBhY3R1YWxseSBkaXNwbGF5ZWQuCiAgICAg IG9uZS4gICovCiAgIGlmICghRlJBTUVfTElWRV9QIChmKSkKICAgICByZXR1cm4gUW5pbDsK LSAgZWxzZSBpZiAoIUVRIChmb3JjZSwgUW5vZWxpc3ApICYmICFvdGhlcl9mcmFtZXMgKGYs ICFOSUxQIChmb3JjZSkpKQorICBlbHNlIGlmICghRVEgKGZvcmNlLCBRbm9lbGlzcCkgJiYg IW90aGVyX2ZyYW1lcyAoZiwgZmFsc2UsIHRydWUpKQogICAgIHsKICAgICAgIGlmIChOSUxQ IChmb3JjZSkpCiAJZXJyb3IgKCJBdHRlbXB0IHRvIGRlbGV0ZSB0aGUgc29sZSB2aXNpYmxl IG9yIGljb25pZmllZCBmcmFtZSIpOwpAQCAtMjI3NSw3ICsyMjczLDcgQEAgb2YgdGhlbSAo dGhlIHNlbGVjdGVkIHRlcm1pbmFsIGZyYW1lKSBpcyBhY3R1YWxseSBkaXNwbGF5ZWQuCiB7 CiAgIHN0cnVjdCBmcmFtZSAqZiA9IGRlY29kZV9saXZlX2ZyYW1lIChmcmFtZSk7CgotICBp ZiAoTklMUCAoZm9yY2UpICYmICFvdGhlcl9mcmFtZXMgKGYsIHRydWUpKQorICBpZiAoTklM UCAoZm9yY2UpICYmICFvdGhlcl9mcmFtZXMgKGYsIHRydWUsIGZhbHNlKSkKICAgICBlcnJv ciAoIkF0dGVtcHQgdG8gbWFrZSBpbnZpc2libGUgdGhlIHNvbGUgdmlzaWJsZSBvciBpY29u aWZpZWQgZnJhbWUiKTsKCiAgIC8qIERvbid0IGFsbG93IG1pbmlidWZfd2luZG93IHRvIHJl bWFpbiBvbiBhbiBpbnZpc2libGUgZnJhbWUuICAqLwpAQCAtMjg3OCw2ICsyODc2LDkgQEAg RWFjaCBlbGVtZW50IG9mIEFMSVNUIGhhcyB0aGUgZm9ybSAoUEFSTSAuIFZBTFVFKSwgd2hl cmUgUEFSTSBpcyBhIHN5bWJvbC4KICAgc3RydWN0IGZyYW1lICpmID0gZGVjb2RlX2xpdmVf ZnJhbWUgKGZyYW1lKTsKICAgTGlzcF9PYmplY3QgcHJvcCwgdmFsOwoKKyAgaWYgKEVRIChh bGlzdCwgUXQpKQorICAgIHJldHVybiBRbmlsOworCiAgIC8qIEkgdGhpbmsgdGhpcyBzaG91 bGQgYmUgZG9uZSB3aXRoIGEgaG9vay4gICovCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVN CiAgIGlmIChGUkFNRV9XSU5ET1dfUCAoZikpCg== --------------050407010108010006080005--