From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Codrut Gusoi Newsgroups: gmane.emacs.bugs Subject: bug#26097: Segmentation fault due to missing faces in face_cache. Date: Tue, 14 Mar 2017 15:49:49 +0200 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113ce256078ec2054ab11a52 X-Trace: blaine.gmane.org 1489505787 11390 195.159.176.226 (14 Mar 2017 15:36:27 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 14 Mar 2017 15:36:27 +0000 (UTC) To: 26097@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Mar 14 16:36:19 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 1cnoUi-00025q-RU for geb-bug-gnu-emacs@m.gmane.org; Tue, 14 Mar 2017 16:36:17 +0100 Original-Received: from localhost ([::1]:60166 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnoUo-0000RO-Uc for geb-bug-gnu-emacs@m.gmane.org; Tue, 14 Mar 2017 11:36:22 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnoUc-0000P2-DJ for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 11:36:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnoUV-00017Z-4V for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 11:36:10 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:57618) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cnoUU-00017P-Qp for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 11:36:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cnoUU-0003NO-Kn for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 11:36:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Codrut Gusoi Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 14 Mar 2017 15:36:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 26097 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.148950571212793 (code B ref -1); Tue, 14 Mar 2017 15:36:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 14 Mar 2017 15:35:12 +0000 Original-Received: from localhost ([127.0.0.1]:55815 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnoTf-0003KG-6u for submit@debbugs.gnu.org; Tue, 14 Mar 2017 11:35:11 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:45636) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnmpw-0006tO-2i for submit@debbugs.gnu.org; Tue, 14 Mar 2017 09:50:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnmpo-0005cu-ON for submit@debbugs.gnu.org; Tue, 14 Mar 2017 09:49:58 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:36701) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cnmpo-0005cq-K3 for submit@debbugs.gnu.org; Tue, 14 Mar 2017 09:49:56 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36594) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnmpl-0003qD-Sn for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 09:49:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnmpj-0005cA-Ie for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 09:49:53 -0400 Original-Received: from mail-ot0-x234.google.com ([2607:f8b0:4003:c0f::234]:35208) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cnmpj-0005c3-Ba for bug-gnu-emacs@gnu.org; Tue, 14 Mar 2017 09:49:51 -0400 Original-Received: by mail-ot0-x234.google.com with SMTP id x37so136161385ota.2 for ; Tue, 14 Mar 2017 06:49:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=8q9nbdwObvoJ+v2iRmGLnqiYGtXg4CigEbsnwpGdco4=; b=OE/0lgvbJA0IUBx9wDxfYJvLBdoUEEM3zsV5EYPWbT16c4V4Qd/9dLCQsefflcRcac 296gQJl+1SYKVBgPi199VXsd8f2R5cSl7gxdmAl2hquGI/zYD+LNh6Dijr0gW9UaTdEF ktN5hpcRFjS96QXDqTWDr6M4UjpFQgyvtxlnLqWW0gE1SQ5NmTVV0y9QJ89QgK3c2eEz wOodFZZQCCT7+eiMRHgcG6BnRbTplFarupe5RGFnjLK0ShEQg+Rc9bT7sjp1gyab2H6u aExYf5iu3fZww/80C48LHBD6+fXpQuGTdV8ZdWteXE6V/ed8y0UYIjiH3XndruubX0Dl tYmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=8q9nbdwObvoJ+v2iRmGLnqiYGtXg4CigEbsnwpGdco4=; b=ALLXJm46ZpOW55DKtJPeJgsxiPW6bcFRWh6ZM5FU1DlmbtNrrD2quMqUJAJIj54Nfl rSuK2HEpaCRAgrKWc5QHd6lbsYBOq9Mtri9yyLLDhsaJCxT4JqFs84q27x8al4fvH4KX zYuEuyf1s7nK1xQAgtrekQXBetNYQy08vkcBsD8XFdTTAUfGsLVPU4lAvoJlpn0c6cnL bXH9/gH5CvHaxL5D3S1XCpr/Zn3Rl1fP5ATbXunBFEGhwKP0FLovPmTB5c/O948pqPfZ eud3pSsjR4FEQFN+IOpLW2qANUJgQPmfaLUuWXGbWu1OUb3xmx1KTy1nmj7ObeVCMcHd nQuw== X-Gm-Message-State: AMke39nA/wGHGcFh9JOgv/9Uspt2P73L4mTG2TBkNfJ3BkLnr6yKWMW3uAheJZTaVTsD/bG6t/VPPcYDCL3htg== X-Received: by 10.202.221.6 with SMTP id u6mr20280594oig.63.1489499389895; Tue, 14 Mar 2017 06:49:49 -0700 (PDT) Original-Received: by 10.182.121.68 with HTTP; Tue, 14 Mar 2017 06:49:49 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Tue, 14 Mar 2017 11:35:09 -0400 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:130573 Archived-At: --001a113ce256078ec2054ab11a52 Content-Type: text/plain; charset=UTF-8 Hello, This is a bit weird to describe so please bear with me. I am using emacs for my day to day editing, and using Spacemacs (http://spacemacs.org/) as a bundle of predefined configurations. Some times, while opening files trough helm I would get a segfault. I took a look in the coredump and also attached gdb to emacs and this is the backtrace: ``` #0 0x00000000004ab2e0 in turn_on_face (f=0xc1c680, face_id=33) at term.c:1895 #1 0x00000000004af432 in tty_write_glyphs (f=, string=, len=) at term.c:767 #2 0x000000000041c2ea in update_frame_line (f=f@entry=0xc1c680, vpos=vpos@entry=29) at dispnew.c:4838 #3 0x000000000041f9e6 in update_frame_1 (f=f@entry=0xc1c680, force_p=force_p@entry=true, inhibit_id_p=, inhibit_id_p@entry=false, set_cursor_p=set_cursor_p@entry=true) at dispnew.c:4540 #4 0x00000000004210fe in update_frame (f=f@entry=0xc1c680, force_p=, force_p@entry=false, inhibit_hairy_id_p=inhibit_hairy_id_p@entry=false) at dispnew.c:3122 #5 0x0000000000452ebc in redisplay_internal () at xdisp.c:14085 #6 0x0000000000454ad5 in redisplay () at xdisp.c:13255 #7 0x00000000004f3d1b in read_char (commandflag=commandflag@entry=1, map=map@entry=28177075, prev_event=0, used_mouse_menu=used_mouse_menu@entry=0x7fffe9ed04db, end_time=end_time@entry=0x0) at keyboard.c:2482 #8 0x00000000004f66f0 in read_key_sequence (keybuf=keybuf@entry=0x7fffe9ed05b0, prompt=prompt@entry=0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at keyboard.c:9068 #9 0x00000000004f8216 in command_loop_1 () at keyboard.c:1370 #10 0x0000000000559742 in internal_condition_case (bfun=bfun@entry=0x4f8020 , handlers=handlers@entry=19104, hfun=hfun@entry=0x4eece0 ) at eval.c:1315 #11 0x00000000004ea3fc in command_loop_2 (ignore=ignore@entry=0) at keyboard.c:1112 #12 0x00000000005596e3 in internal_catch (tag=tag@entry=45936, func=func@entry=0x4ea3e0 , arg=arg@entry=0) at eval.c:1080 #13 0x00000000004ea3b9 in command_loop () at keyboard.c:1091 #14 0x00000000004ee8e7 in recursive_edit_1 () at keyboard.c:697 #15 0x00000000004eec28 in Frecursive_edit () at keyboard.c:768 #16 0x00000000004182bb in main (argc=3, argv=0x7fffe9ed0908) at emacs.c:1629 ``` This led me to the term.c file at 1895 (emacs 25.1.90), inside the turn_on_face function. Notice face_id=33 on frame 0 args. That was equal to f->face_cache->used which means FACE_FROM_ID returns NULL and causes the segfault in turn_on_face. I tried looking around to understand why this was happening but I did not uncover much. Then I tried finding a fix for the problem at hand, more exactly what to do when FACE_FROM_ID returns a NULL and how to deal with it so that it would no longer segfault. Here is what I came up with: * I could simply return; from turn_on_face (and the complementary turn_off_face) function on NULL. From what I understand this means leave text on the screen as is, don't redraw. This is inside the attached 001.patch * I could return the defualt face from FACE_FROM_ID. This would mean text would be displayed on screen with an unexpected default face, but at least it would not crash. The fix is inside the attached 002.patch (emacs 25) and 004.patch (emacs 26). * I could get the default face directly in the turn_on_face function in case of NULL, in case modifying the behaviour of FACE_FROM_ID is unwanted. This is inside the attached 003.patch. Now let me explain how exactly you can reproduce the bug: * First you will need a linux environment. This bug should be reproducible on any linux. You could do it on your own linux or you could get my current setup: VirtualBox and https://manjaro.org/get-manjaro/ xfce. * Then you will need emacs and xclip installed. You can install them from your package manager or from source, I've reproduced the bug with the following versions: 25.1.1, 25.1.90 and when building master from source. * Open a terminal and either make it fullscreen or maximized. * To install spacemacs you first need to remove ~/.emacs.d and ~/.emacs and then execute the following commands: git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d curl -fSLo ~/.spacemacs https://raw.githubusercontent.com/sdwolf/dotfiles/master/.spacemacs * Now you must start emacs inside a relatively large git repository. I have chosen emacs's repo for this. cd emacs emacs -nw . * You now have to wait untill emacs gets all the packages. when this is done you will have exactly the same setup as I have on all my machines. * You have to stop emacs and start it again. You can either do C-x C-c or :qa! since it used evil-mode (vim style). * When you have it started again you should see 2 thigs. First on the left neotree opened with the contents of the current directlry, which should be the contents of the emacs repo. On the right would be dired with the same content. * From this place you need to press p f (that is spacebar followed by 'p' followed by 'f' on separate key strokes, do not hold down the keys, just press). This will bring up helm in the lower part of the screen. The idea is to open a relatively large file so that emacs has a lot of work to do and potentially trigger the segfault. The cursor will be on helm's search so you can type "src/term.c" (without the quotes) then press return (RET). If this does not crash emacs, you will have to move to a relatively large line number, ex 1800 and close emacs. This means that next time you open this file, emacs will open it at that line number. To move to that line number just type ":1800" and pres return (RET). To close emacs from here you can type ":qa!" and press return (RET). * You will have to open emacs again and do the above step again. This manages to trigger the segfault every time in my case. Note that it should take a relatively long time to open this file (6--10 seconds), so please wait patiently. Some things i've observed while digging with gdb: - Before opening helm in the setup above there are 28 faces in the face_cache. - After I open helm the cache fills with around 48 faces. - When i hit return after selecting a file, the cache fills up with more faces, until it gets to displaying the frame corresponding to the file (buffer). Then the face_cache drops to 33 (f->used == 33). - When it gets to the line where it must redisplay helm (vpos == 29 on dgb frame 2 above), it wants to redisplay the faces for helm but they are no longer in the cache, so FACE_FROM_ID returns NULL and a crash happens when the code dereferences the porinter a line below. - Since helm dissapears a few moments later, it's no problem if you just skip over this with a return or if you use a default face. - On emacs 25 with any of my patches applied, for a fraction of a second after pressing return and helm closing, you can still see the lower left corner of the screen (where the neotree area resides) still having the contents of helm. But that part is imediatly redrawn with the content of neotree. On emacs 26 that part does not get redrawn, untill you do an action like moving up/down one page or switch to neotree. This might be an inconvenience but in my opinion it's better than having a segfault. Hopefully I've managed to describe the problem (and potentially the patches I've attached are helpfull). Feel free to ask if you need further clarifications. Right now I am using my patched version of emacs to do my work and it would be great if a fix or workaround for this would be available in the default versions. For reference, here is an issue on github direclty related to this problem: https://github.com/syl20bnr/spacemacs/issues/8197 Thank you, Codrut --001a113ce256078ec2054ab11a52 Content-Type: text/x-patch; charset=US-ASCII; name="001.patch" Content-Disposition: attachment; filename="001.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j09iuoxr0 RnJvbSAxMWJjZWI2MTAyODA2ODhkODI5NjBlYjM0Y2ZkM2NiNjMzZmQ4M2ZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q29kcnU9Qzg9OUI9MjBDb25zdGFudGluPTIw R3U9Qzg9OTlvaT89CiA8Y29kcnV0Lmd1c29pQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxMSBNYXIg MjAxNyAyMDoxMjozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeGVzIHNlZ2ZhdWx0cyBjYXVz ZWQgYnkgbWlzc2luZyBmYWNlcwoKLS0tCiBzcmMvdGVybS5jIHwgOCArKysrKysrKwogMSBmaWxl IGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXJtLmMgYi9zcmMv dGVybS5jCmluZGV4IDQzOTcyMTA5NjUuLjQ3YWMxOWU4OWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXJt LmMKKysrIGIvc3JjL3Rlcm0uYwpAQCAtMTg5Miw2ICsxODkyLDEwIEBAIHN0YXRpYyB2b2lkCiB0 dXJuX29uX2ZhY2UgKHN0cnVjdCBmcmFtZSAqZiwgaW50IGZhY2VfaWQpCiB7CiAgIHN0cnVjdCBm YWNlICpmYWNlID0gRkFDRV9GUk9NX0lEIChmLCBmYWNlX2lkKTsKKworICAvKiBHdWFyZHMgYWdh aW5zIE5VTEwgcmV0dXJuZWQgZnJvbSB0aGUgYEZBQ0VfRlJPTV9JRGAgbWFjcm8uICovCisgIGlm IChmYWNlID09IE5VTEwpIHJldHVybjsKKwogICB1bnNpZ25lZCBsb25nIGZnID0gZmFjZS0+Zm9y ZWdyb3VuZDsKICAgdW5zaWduZWQgbG9uZyBiZyA9IGZhY2UtPmJhY2tncm91bmQ7CiAgIHN0cnVj dCB0dHlfZGlzcGxheV9pbmZvICp0dHkgPSBGUkFNRV9UVFkgKGYpOwpAQCAtMTk1Miw2ICsxOTU2 LDEwIEBAIHN0YXRpYyB2b2lkCiB0dXJuX29mZl9mYWNlIChzdHJ1Y3QgZnJhbWUgKmYsIGludCBm YWNlX2lkKQogewogICBzdHJ1Y3QgZmFjZSAqZmFjZSA9IEZBQ0VfRlJPTV9JRCAoZiwgZmFjZV9p ZCk7CisKKyAgLyogR3VhcmRzIGFnYWlucyBOVUxMIHJldHVybmVkIGZyb20gdGhlIGBGQUNFX0ZS T01fSURgIG1hY3JvLiAqLworICBpZiAoZmFjZSA9PSBOVUxMKSByZXR1cm47CisKICAgc3RydWN0 IHR0eV9kaXNwbGF5X2luZm8gKnR0eSA9IEZSQU1FX1RUWSAoZik7CiAKICAgZWFzc2VydCAoZmFj ZSAhPSBOVUxMKTsKLS0gCjIuMTIuMAoK --001a113ce256078ec2054ab11a52 Content-Type: text/x-patch; charset=US-ASCII; name="002.patch" Content-Disposition: attachment; filename="002.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j09iuoze1 RnJvbSBjNDUyZmQwMjk5NWQyMjg5OWIyZmQxNzE3ZmFiMmI2YWU0ZjY5Y2Q2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q29kcnU9Qzg9OUI9MjBDb25zdGFudGluPTIw R3U9Qzg9OTlvaT89CiA8Y29kcnV0Lmd1c29pQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMyBNYXIg MjAxNyAxOTowNDoxOCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeGVzIHNlZ2ZhdWx0cyBjYXVz ZWQgYnkgbWlzc2luZyBmYWNlcwoKLS0tCiBzcmMvZGlzcGV4dGVybi5oIHwgMTUgKysrKysrKyst LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9kaXNwZXh0ZXJuLmggYi9zcmMvZGlzcGV4dGVybi5oCmluZGV4IDdi OWFlNzhkY2QuLjBkZjc3OGRiMmYgMTAwNjQ0Ci0tLSBhL3NyYy9kaXNwZXh0ZXJuLmgKKysrIGIv c3JjL2Rpc3BleHRlcm4uaApAQCAtMTgxMiwxMyArMTgxMiwxNCBAQCBzdHJ1Y3QgZmFjZV9jYWNo ZQogICBib29sX2JmIG1lbnVfZmFjZV9jaGFuZ2VkX3AgOiAxOwogfTsKIAotLyogUmV0dXJuIGEg cG9pbnRlciB0byB0aGUgZmFjZSB3aXRoIElEIG9uIGZyYW1lIEYsIG9yIG51bGwgaWYgc3VjaCBh Ci0gICBmYWNlIGRvZXNuJ3QgZXhpc3QuICAqLwotCi0jZGVmaW5lIEZBQ0VfRlJPTV9JRChGLCBJ RCkJCQkJXAotICAgICAoVU5TSUdORURfQ01QIChJRCwgPCwgRlJBTUVfRkFDRV9DQUNIRSAoRikt PnVzZWQpCVwKLSAgICAgID8gRlJBTUVfRkFDRV9DQUNIRSAoRiktPmZhY2VzX2J5X2lkW0lEXQkJ XAotICAgICAgOiBOVUxMKQorLyogUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgZmFjZSB3aXRoIElE IG9uIGZyYW1lIEYuIEluIGNhc2UgdGhlIGZhY2UKKyAgIElEIGlzIGdyZWF0ZXIgdGhhdCB0aGUg bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBmYWNlIGNhY2hlLCBpdAorICAgdXNlcyBhIGRlZmF1 bHQgZmFjZSBJRC4gKi8KKworI2RlZmluZSBGQUNFX0ZST01fSUQoRiwgSUQpCQkJCSAgICBcCisg ICAgIChVTlNJR05FRF9DTVAgKElELCA8LCBGUkFNRV9GQUNFX0NBQ0hFIChGKS0+dXNlZCkJICAg IFwKKyAgICAgID8gRlJBTUVfRkFDRV9DQUNIRSAoRiktPmZhY2VzX2J5X2lkW0lEXQkJICAgIFwK KyAgICAgIDogRlJBTUVfRkFDRV9DQUNIRSAoRiktPmZhY2VzX2J5X2lkW0RFRkFVTFRfRkFDRV9J RF0pCiAKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KIAotLSAKMi4xMi4wCgo= --001a113ce256078ec2054ab11a52 Content-Type: text/x-patch; charset=US-ASCII; name="003.patch" Content-Disposition: attachment; filename="003.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j09iuozw2 RnJvbSA0MGE4NTRhN2Q5MmRhNTRiNTY4NzQ1ZjhmNmQ1YzJjZWJmYTkxNmJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q29kcnU9Qzg9OUI9MjBDb25zdGFudGluPTIw R3U9Qzg9OTlvaT89CiA8Y29kcnV0Lmd1c29pQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMyBNYXIg MjAxNyAxOToxNzowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeGVzIHNlZ2ZhdWx0cyBjYXVz ZWQgYnkgbWlzc2luZyBmYWNlcwoKLS0tCiBzcmMvdGVybS5jIHwgMTIgKysrKysrKysrKysrCiAx IGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXJtLmMg Yi9zcmMvdGVybS5jCmluZGV4IDQzOTcyMTA5NjUuLmZlM2RmOWRhYzcgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXJtLmMKKysrIGIvc3JjL3Rlcm0uYwpAQCAtMTg5Miw2ICsxODkyLDEyIEBAIHN0YXRpYyB2 b2lkCiB0dXJuX29uX2ZhY2UgKHN0cnVjdCBmcmFtZSAqZiwgaW50IGZhY2VfaWQpCiB7CiAgIHN0 cnVjdCBmYWNlICpmYWNlID0gRkFDRV9GUk9NX0lEIChmLCBmYWNlX2lkKTsKKworICAvKiBUaGUg ZmFjZSBtaWdodCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZSwgdXNpbmcKKyAgICAg dGhlIGRlZmF1bHQgZmFjZSB0byBwcmV2ZW50IGEgc2VnZmF1bHQuICovCisgIGlmIChmYWNlID09 IE5VTEwpCisgICAgZmFjZSA9IEZBQ0VfRlJPTV9JRCAoZiwgREVGQVVMVF9GQUNFX0lEKTsKKwog ICB1bnNpZ25lZCBsb25nIGZnID0gZmFjZS0+Zm9yZWdyb3VuZDsKICAgdW5zaWduZWQgbG9uZyBi ZyA9IGZhY2UtPmJhY2tncm91bmQ7CiAgIHN0cnVjdCB0dHlfZGlzcGxheV9pbmZvICp0dHkgPSBG UkFNRV9UVFkgKGYpOwpAQCAtMTk1Miw2ICsxOTU4LDEyIEBAIHN0YXRpYyB2b2lkCiB0dXJuX29m Zl9mYWNlIChzdHJ1Y3QgZnJhbWUgKmYsIGludCBmYWNlX2lkKQogewogICBzdHJ1Y3QgZmFjZSAq ZmFjZSA9IEZBQ0VfRlJPTV9JRCAoZiwgZmFjZV9pZCk7CisKKyAgLyogVGhlIGZhY2UgbWlnaHQg aGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUsIHVzaW5nCisgICAgIHRoZSBkZWZhdWx0 IGZhY2UgdG8gcHJldmVudCBhIHNlZ2ZhdWx0LiAqLworICBpZiAoZmFjZSA9PSBOVUxMKQorICAg IGZhY2UgPSBGQUNFX0ZST01fSUQgKGYsIERFRkFVTFRfRkFDRV9JRCk7CisKICAgc3RydWN0IHR0 eV9kaXNwbGF5X2luZm8gKnR0eSA9IEZSQU1FX1RUWSAoZik7CiAKICAgZWFzc2VydCAoZmFjZSAh PSBOVUxMKTsKLS0gCjIuMTIuMAoK --001a113ce256078ec2054ab11a52 Content-Type: text/x-patch; charset=US-ASCII; name="004.patch" Content-Disposition: attachment; filename="004.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j09iup0d3 RnJvbSA0OGY5NTU3YzllNWU3MDllMDJmOWVjNTM4NDAxYmRkYjY5ZGMyYjI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q29kcnU9Qzg9OUI9MjBDb25zdGFudGluPTIw R3U9Qzg9OTlvaT89CiA8Y29kcnV0Lmd1c29pQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMyBNYXIg MjAxNyAxOToyNDo0OCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeGVzIHNlZ2ZhdWx0cyBjYXVz ZWQgYnkgbWlzc2luZyBmYWNlcwoKLS0tCiBzcmMvZGlzcGV4dGVybi5oIHwgMTMgKysrKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvZGlzcGV4dGVybi5oIGIvc3JjL2Rpc3BleHRlcm4uaAppbmRleCA2Nzk4 MjBkNTA2Li5jYmYyZTg1N2Q4IDEwMDY0NAotLS0gYS9zcmMvZGlzcGV4dGVybi5oCisrKyBiL3Ny Yy9kaXNwZXh0ZXJuLmgKQEAgLTE4MTIsMTEgKzE4MTIsMTQgQEAgc3RydWN0IGZhY2VfY2FjaGUK ICAgYm9vbF9iZiBtZW51X2ZhY2VfY2hhbmdlZF9wIDogMTsKIH07CiAKLS8qIFJldHVybiBhIG5v bi1udWxsIHBvaW50ZXIgdG8gdGhlIGNhY2hlZCBmYWNlIHdpdGggSUQgb24gZnJhbWUgRi4gICov Ci0KLSNkZWZpbmUgRkFDRV9GUk9NX0lEKEYsIElEKQkJCQkJXAotICAoZWFzc2VydCAoVU5TSUdO RURfQ01QIChJRCwgPCwgRlJBTUVfRkFDRV9DQUNIRSAoRiktPnVzZWQpKSwJXAotICAgRlJBTUVf RkFDRV9DQUNIRSAoRiktPmZhY2VzX2J5X2lkW0lEXSkKKy8qIFJldHVybiBhIG5vbi1udWxsIHBv aW50ZXIgdG8gdGhlIGNhY2hlZCBmYWNlIHdpdGggSUQgb24gZnJhbWUgRi4KKyAgIEluIGNhc2Ug dGhlIGZhY2UgSUQgaXMgZ3JlYXRlciB0aGF0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhl CisgICBmYWNlIGNhY2hlLCBpdCB1c2VzIGEgZGVmYXVsdCBmYWNlIElELiAqLworCisjZGVmaW5l IEZBQ0VfRlJPTV9JRChGLCBJRCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAo VU5TSUdORURfQ01QIChJRCwgPCwgRlJBTUVfRkFDRV9DQUNIRSAoRiktPnVzZWQpICAgICAgIFwK KyAgID8gRlJBTUVfRkFDRV9DQUNIRSAoRiktPmZhY2VzX2J5X2lkW0lEXSAgICAgICAgICAgICAg IFwKKyAgIDogRlJBTUVfRkFDRV9DQUNIRSAoRiktPmZhY2VzX2J5X2lkW0RFRkFVTFRfRkFDRV9J RF0pCiAKIC8qIFJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGZhY2Ugd2l0aCBJRCBvbiBmcmFtZSBG LCBvciBudWxsIGlmIHN1Y2ggYQogICAgZmFjZSBkb2Vzbid0IGV4aXN0LiAgKi8KLS0gCjIuMTIu MAoK --001a113ce256078ec2054ab11a52--