From owner-freebsd-pf@FreeBSD.ORG Wed May 6 09:08:52 2015 Return-Path: Delivered-To: freebsd-pf@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A3ADBB82 for ; Wed, 6 May 2015 09:08:52 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8C91F1839 for ; Wed, 6 May 2015 09:08:52 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t4698qRD015120 for ; Wed, 6 May 2015 09:08:52 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-pf@FreeBSD.org Subject: [Bug 185633] [pf] scrubbing bug in transparent mode bug with bigger than MTU UDP packet Date: Wed, 06 May 2015 09:08:52 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: olivier@cochard.me X-Bugzilla-Status: In Progress X-Bugzilla-Priority: Normal X-Bugzilla-Assigned-To: freebsd-pf@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 09:08:52 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=185633 --- Comment #2 from olivier@cochard.me --- Same problem on -current r282520: - Corrupted reassembled packet outgoing the bridge - Crash As example, a simple big ping: ping -c 1 -s 1500 10.0.0.3 Produce this tcpdump output on the INCOMING PF-bridge interface: [root@R2]~# tcpdump -pni em0 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on em0, link-type EN10MB (Ethernet), capture size 262144 bytes 11:03:41.790409 IP 10.0.0.1 > 10.0.0.3: ICMP echo request, id 62723, seq 0, length 1480 11:03:41.790434 IP 10.0.0.1 > 10.0.0.3: ip-proto-1 But produce this tcpdump output on the OUTGOING PF-bridge interface: [root@R2]~# tcpdump -pni em1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on em1, link-type EN10MB (Ethernet), capture size 262144 bytes 11:03:54.863303 20:00:40:01:df:91 > 45:00:05:dc:61:8c, ethertype Unknown (0x0a00), length 1500: 0x0000: 0001 0a00 0003 0800 3b06 f703 0000 5549 ........;.....UI 0x0010: f51b 0001 c0ed 0809 0a0b 0c0d 0e0f 1011 ................ 0x0020: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0030: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0040: 3233 3435 3637 3839 3a3b 3c3d 3e3f 4041 23456789:;<=>?@A 0x0050: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 0x0060: 5253 5455 5657 5859 5a5b 5c5d 5e5f 6061 RSTUVWXYZ[\]^_`a 0x0070: 6263 6465 6667 6869 6a6b 6c6d 6e6f 7071 bcdefghijklmnopq 0x0080: 7273 7475 7677 7879 7a7b 7c7d 7e7f 8081 rstuvwxyz{|}~... 0x0090: 8283 8485 8687 8889 8a8b 8c8d 8e8f 9091 ................ 0x00a0: 9293 9495 9697 9899 9a9b 9c9d 9e9f a0a1 ................ 0x00b0: a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0b1 ................ 0x00c0: b2b3 b4b5 b6b7 b8b9 babb bcbd bebf c0c1 ................ 0x00d0: c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0d1 ................ 0x00e0: d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf e0e1 ................ 0x00f0: e2e3 e4e5 e6e7 e8e9 eaeb eced eeef f0f1 ................ 0x0100: f2f3 f4f5 f6f7 f8f9 fafb fcfd feff 0001 ................ 0x0110: 0203 0405 0607 0809 0a0b 0c0d 0e0f 1011 ................ 0x0120: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0130: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0140: 3233 3435 3637 3839 3a3b 3c3d 3e3f 4041 23456789:;<=>?@A 0x0150: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 0x0160: 5253 5455 5657 5859 5a5b 5c5d 5e5f 6061 RSTUVWXYZ[\]^_`a 0x0170: 6263 6465 6667 6869 6a6b 6c6d 6e6f 7071 bcdefghijklmnopq 0x0180: 7273 7475 7677 7879 7a7b 7c7d 7e7f 8081 rstuvwxyz{|}~... 0x0190: 8283 8485 8687 8889 8a8b 8c8d 8e8f 9091 ................ 0x01a0: 9293 9495 9697 9899 9a9b 9c9d 9e9f a0a1 ................ 0x01b0: a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0b1 ................ 0x01c0: b2b3 b4b5 b6b7 b8b9 babb bcbd bebf c0c1 ................ 0x01d0: c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0d1 ................ 0x01e0: d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf e0e1 ................ 0x01f0: e2e3 e4e5 e6e7 e8e9 eaeb eced eeef f0f1 ................ 0x0200: f2f3 f4f5 f6f7 f8f9 fafb fcfd feff 0001 ................ 0x0210: 0203 0405 0607 0809 0a0b 0c0d 0e0f 1011 ................ 0x0220: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0230: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0240: 3233 3435 3637 3839 3a3b 3c3d 3e3f 4041 23456789:;<=>?@A 0x0250: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 0x0260: 5253 5455 5657 5859 5a5b 5c5d 5e5f 6061 RSTUVWXYZ[\]^_`a 0x0270: 6263 6465 6667 6869 6a6b 6c6d 6e6f 7071 bcdefghijklmnopq 0x0280: 7273 7475 7677 7879 7a7b 7c7d 7e7f 8081 rstuvwxyz{|}~... 0x0290: 8283 8485 8687 8889 8a8b 8c8d 8e8f 9091 ................ 0x02a0: 9293 9495 9697 9899 9a9b 9c9d 9e9f a0a1 ................ 0x02b0: a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0b1 ................ 0x02c0: b2b3 b4b5 b6b7 b8b9 babb bcbd bebf c0c1 ................ 0x02d0: c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0d1 ................ 0x02e0: d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf e0e1 ................ 0x02f0: e2e3 e4e5 e6e7 e8e9 eaeb eced eeef f0f1 ................ 0x0300: f2f3 f4f5 f6f7 f8f9 fafb fcfd feff 0001 ................ 0x0310: 0203 0405 0607 0809 0a0b 0c0d 0e0f 1011 ................ 0x0320: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0330: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0340: 3233 3435 3637 3839 3a3b 3c3d 3e3f 4041 23456789:;<=>?@A 0x0350: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 0x0360: 5253 5455 5657 5859 5a5b 5c5d 5e5f 6061 RSTUVWXYZ[\]^_`a 0x0370: 6263 6465 6667 6869 6a6b 6c6d 6e6f 7071 bcdefghijklmnopq 0x0380: 7273 7475 7677 7879 7a7b 7c7d 7e7f 8081 rstuvwxyz{|}~... 0x0390: 8283 8485 8687 8889 8a8b 8c8d 8e8f 9091 ................ 0x03a0: 9293 9495 9697 9899 9a9b 9c9d 9e9f a0a1 ................ 0x03b0: a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0b1 ................ 0x03c0: b2b3 b4b5 b6b7 b8b9 babb bcbd bebf c0c1 ................ 0x03d0: c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0d1 ................ 0x03e0: d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf e0e1 ................ 0x03f0: e2e3 e4e5 e6e7 e8e9 eaeb eced eeef f0f1 ................ 0x0400: f2f3 f4f5 f6f7 f8f9 fafb fcfd feff 0001 ................ 0x0410: 0203 0405 0607 0809 0a0b 0c0d 0e0f 1011 ................ 0x0420: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0430: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0440: 3233 3435 3637 3839 3a3b 3c3d 3e3f 4041 23456789:;<=>?@A 0x0450: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 0x0460: 5253 5455 5657 5859 5a5b 5c5d 5e5f 6061 RSTUVWXYZ[\]^_`a 0x0470: 6263 6465 6667 6869 6a6b 6c6d 6e6f 7071 bcdefghijklmnopq 0x0480: 7273 7475 7677 7879 7a7b 7c7d 7e7f 8081 rstuvwxyz{|}~... 0x0490: 8283 8485 8687 8889 8a8b 8c8d 8e8f 9091 ................ 0x04a0: 9293 9495 9697 9899 9a9b 9c9d 9e9f a0a1 ................ 0x04b0: a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0b1 ................ 0x04c0: b2b3 b4b5 b6b7 b8b9 babb bcbd bebf c0c1 ................ 0x04d0: c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0d1 ................ 0x04e0: d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf e0e1 ................ 0x04f0: e2e3 e4e5 e6e7 e8e9 eaeb eced eeef f0f1 ................ 0x0500: f2f3 f4f5 f6f7 f8f9 fafb fcfd feff 0001 ................ 0x0510: 0203 0405 0607 0809 0a0b 0c0d 0e0f 1011 ................ 0x0520: 1213 1415 1617 1819 1a1b 1c1d 1e1f 2021 ...............! 0x0530: 2223 2425 2627 2829 2a2b 2c2d 2e2f 3031 "#$%&'()*+,-./01 0x0540: 3233 3435 3637 3839 3a3b 3c3d 3e3f 4041 23456789:;<=>?@A 0x0550: 4243 4445 4647 4849 4a4b 4c4d 4e4f 5051 BCDEFGHIJKLMNOPQ 0x0560: 5253 5455 5657 5859 5a5b 5c5d 5e5f 6061 RSTUVWXYZ[\]^_`a 0x0570: 6263 6465 6667 6869 6a6b 6c6d 6e6f 7071 bcdefghijklmnopq 0x0580: 7273 7475 7677 7879 7a7b 7c7d 7e7f 8081 rstuvwxyz{|}~... 0x0590: 8283 8485 8687 8889 8a8b 8c8d 8e8f 9091 ................ 0x05a0: 9293 9495 9697 9899 9a9b 9c9d 9e9f a0a1 ................ 0x05b0: a2a3 a4a5 a6a7 a8a9 aaab acad aeaf b0b1 ................ 0x05c0: b2b3 b4b5 b6b7 b8b9 babb bcbd bebf .............. 11:03:54.863318 00:b9:40:01:04:85 > 45:00:00:30:61:8c, ethertype Unknown (0x0a00), length 48: 0x0000: 0001 0a00 0003 c0c1 c2c3 c4c5 c6c7 c8c9 ................ 0x0010: cacb cccd cecf d0d1 d2d3 d4d5 d6d7 d8d9 ................ 0x0020: dadb .. And when pushing multiple fragmented packets, it crash: Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x1c fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff81a14b13 stack pointer = 0x28:0xfffffe00003857f0 frame pointer = 0x28:0xfffffe0000385860 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 0 (em0 taskq) trap number = 12 panic: page fault cpuid = 0 KDB: stack backtrace: #0 0xffffffff808582c7 at kdb_backtrace+0x67 #1 0xffffffff808188a9 at vpanic+0x189 #2 0xffffffff80818713 at panic+0x43 #3 0xffffffff80be93d9 at trap_fatal+0x379 #4 0xffffffff80be970e at trap_pfault+0x31e #5 0xffffffff80be8d51 at trap+0x461 #6 0xffffffff80bcc7b2 at calltrap+0x8 #7 0xffffffff81a150e7 at bridge_forward+0x2f7 #8 0xffffffff81a137cc at bridge_input+0x5dc #9 0xffffffff809073b3 at ether_nh_input+0x2d3 #10 0xffffffff80910231 at netisr_dispatch_src+0x61 #11 0xffffffff80906ab6 at ether_input+0x26 #12 0xffffffff80902cda at if_input+0xa #13 0xffffffff804734d0 at lem_rxeof+0x4c0 #14 0xffffffff80473b54 at lem_handle_rxtx+0x34 #15 0xffffffff8086b519 at taskqueue_run_locked+0x139 #16 0xffffffff8086c318 at taskqueue_thread_loop+0xc8 #17 0xffffffff807df92a at fork_exit+0x9a Uptime: 6m18s -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-pf@FreeBSD.ORG Fri May 8 17:19:55 2015 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0AB5D9CC for ; Fri, 8 May 2015 17:19:55 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DC3A414B9 for ; Fri, 8 May 2015 17:19:54 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [127.0.1.5]) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9) with ESMTP id t48HJsrc045022 for ; Fri, 8 May 2015 17:19:54 GMT (envelope-from daemon-user@phabric-backend.isc.freebsd.org) Received: (from daemon-user@localhost) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9/Submit) id t48HJsnJ045021; Fri, 8 May 2015 17:19:54 GMT (envelope-from daemon-user) Date: Fri, 8 May 2015 17:19:54 +0000 To: freebsd-pf@freebsd.org From: "nvass-gmx.com (Nikos Vassiliadis)" Subject: [Differential] [Updated, 197 lines] D1944: PF and VIMAGE fixes Message-ID: <9ba5b83b76886d7d482c70e02f5fe274@localhost.localdomain> X-Priority: 3 Thread-Topic: D1944: PF and VIMAGE fixes X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: In-Reply-To: References: Thread-Index: NDc2NzM0MzY4OTdiYThiNTU1MjY2ZDZmMTJiIFVM8Do= Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_9ba5b83b76886d7d482c70e02f5fe274" X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.20 List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 May 2015 17:19:55 -0000 --b1_9ba5b83b76886d7d482c70e02f5fe274 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit nvass-gmx.com updated this revision to Diff 5290. nvass-gmx.com added a comment. Hi, Please review this. It updates the previous patch, with another way to unload pf. Eventhandlers are also touched, they should behave correctly now. CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D1944?vs=3915&id=5290 REVISION DETAIL https://reviews.freebsd.org/D1944 AFFECTED FILES sys/net/pfvar.h sys/netpfil/pf/pf.c sys/netpfil/pf/pf_if.c sys/netpfil/pf/pf_ioctl.c sys/netpfil/pf/pf_norm.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: nvass-gmx.com, bz, zec, trociny, glebius, rodrigc, kristof, gnn Cc: robak, freebsd-virtualization, freebsd-pf, freebsd-net --b1_9ba5b83b76886d7d482c70e02f5fe274 Content-Type: text/x-patch; charset=utf-8; name="D1944.5290.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D1944.5290.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRwZmlsL3BmL3BmX25vcm0uYyBiL3N5cy9uZXRwZmlsL3BmL3Bm X25vcm0uYwotLS0gYS9zeXMvbmV0cGZpbC9wZi9wZl9ub3JtLmMKKysrIGIvc3lzL25ldHBmaWwv cGYvcGZfbm9ybS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAib3B0X3BmLmgiCiAKICNp bmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CiAjaW5jbHVkZSA8 c3lzL2xvY2suaD4KICNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgogI2luY2x1ZGUgPHN5cy9tdXRleC5o PgpAQCAtMTA4LDYgKzEwOSw3IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IG10eCBwZl9mcmFnX210 eDsKK01UWF9TWVNJTklUKHBmX2ZyYWdfbXR4LCAmcGZfZnJhZ19tdHgsICJwZiBmcmFnbWVudHMi LCBNVFhfREVGKTsKICNkZWZpbmUgUEZfRlJBR19MT0NLKCkJCW10eF9sb2NrKCZwZl9mcmFnX210 eCkKICNkZWZpbmUgUEZfRlJBR19VTkxPQ0soKQltdHhfdW5sb2NrKCZwZl9mcmFnX210eCkKICNk ZWZpbmUgUEZfRlJBR19BU1NFUlQoKQltdHhfYXNzZXJ0KCZwZl9mcmFnX210eCwgTUFfT1dORUQp CkBAIC0xODEsNyArMTgzLDcgQEAKICNlbmRpZgkvKiBJTkVUICovCiAKIHZvaWQKLXBmX25vcm1h bGl6ZV9pbml0KHZvaWQpCitwZl92bmV0X25vcm1hbGl6ZV9pbml0KHZvaWQpCiB7CiAKIAlWX3Bm X2ZyYWdfeiA9IHVtYV96Y3JlYXRlKCJwZiBmcmFncyIsIHNpemVvZihzdHJ1Y3QgcGZfZnJhZ21l bnQpLApAQCAtMTk3LDggKzE5OSw2IEBACiAJdW1hX3pvbmVfc2V0X21heChWX3BmX2ZyZW50X3os IFBGRlJBR19GUkVOVF9ISVdBVCk7CiAJdW1hX3pvbmVfc2V0X3dhcm5pbmcoVl9wZl9mcmVudF96 LCAiUEYgZnJhZyBlbnRyaWVzIGxpbWl0IHJlYWNoZWQiKTsKIAotCW10eF9pbml0KCZwZl9mcmFn X210eCwgInBmIGZyYWdtZW50cyIsIE5VTEwsIE1UWF9ERUYpOwotCiAJVEFJTFFfSU5JVCgmVl9w Zl9mcmFncXVldWUpOwogCVRBSUxRX0lOSVQoJlZfcGZfY2FjaGVxdWV1ZSk7CiB9CkBAIC0yMTAs OCArMjEwLDYgQEAKIAl1bWFfemRlc3Ryb3koVl9wZl9zdGF0ZV9zY3J1Yl96KTsKIAl1bWFfemRl c3Ryb3koVl9wZl9mcmVudF96KTsKIAl1bWFfemRlc3Ryb3koVl9wZl9mcmFnX3opOwotCi0JbXR4 X2Rlc3Ryb3koJnBmX2ZyYWdfbXR4KTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvc3lz L25ldHBmaWwvcGYvcGZfaW9jdGwuYyBiL3N5cy9uZXRwZmlsL3BmL3BmX2lvY3RsLmMKLS0tIGEv c3lzL25ldHBmaWwvcGYvcGZfaW9jdGwuYworKysgYi9zeXMvbmV0cGZpbC9wZi9wZl9pb2N0bC5j CkBAIC04Nyw3ICs4Nyw4IEBACiAjaW5jbHVkZSA8bmV0L2FsdHEvYWx0cS5oPgogI2VuZGlmCiAK LXN0YXRpYyBpbnQJCSBwZmF0dGFjaCh2b2lkKTsKK3N0YXRpYyBpbnQJCSBwZl92bmV0X2luaXQo dm9pZCk7CitzdGF0aWMgaW50CQkgcGZfdm5ldF91bmluaXQodm9pZCk7CiBzdGF0aWMgc3RydWN0 IHBmX3Bvb2wJKnBmX2dldF9wb29sKGNoYXIgKiwgdV9pbnQzMl90LCB1X2ludDhfdCwgdV9pbnQz Ml90LAogCQkJICAgIHVfaW50OF90LCB1X2ludDhfdCwgdV9pbnQ4X3QpOwogCkBAIC0xNDksNiAr MTUwLDcgQEAKICNkZWZpbmUgRFBGUFJJTlRGKG4sIHgpIGlmIChWX3BmX3N0YXR1cy5kZWJ1ZyA+ PSAobikpIHByaW50ZiB4CiAKIHN0cnVjdCBjZGV2ICpwZl9kZXY7CitpbnQgbnVtYmVyX29mX3Zu ZXRzID0gMDsKIAogLyoKICAqIFhYWCAtIFRoZXNlIGFyZSBuZXcgYW5kIG5lZWQgdG8gYmUgY2hl Y2tlZCB3aGVuIG1vdmVpbmcgdG8gYSBuZXcgdmVyc2lvbgpAQCAtMjA1LDE3ICsyMDcsMTYgQEAK IHBmbG9nX3BhY2tldF90CQkJKnBmbG9nX3BhY2tldF9wdHIgPSBOVUxMOwogCiBzdGF0aWMgaW50 Ci1wZmF0dGFjaCh2b2lkKQorcGZfdm5ldF9pbml0KHZvaWQpCiB7CiAJdV9pbnQzMl90ICpteV90 aW1lb3V0ID0gVl9wZl9kZWZhdWx0X3J1bGUudGltZW91dDsKIAlpbnQgZXJyb3I7CiAKLQlpZiAo SVNfREVGQVVMVF9WTkVUKGN1cnZuZXQpKQotCQlwZl9tdGFnX2luaXRpYWxpemUoKTsKLQlwZl9p bml0aWFsaXplKCk7CisJbnVtYmVyX29mX3ZuZXRzKys7CisJcGZfdm5ldF9pbml0aWFsaXplKCk7 CiAJcGZyX2luaXRpYWxpemUoKTsKLQlwZmlfaW5pdGlhbGl6ZSgpOwotCXBmX25vcm1hbGl6ZV9p bml0KCk7CisJcGZpX3ZuZXRfaW5pdGlhbGl6ZSgpOworCXBmX3ZuZXRfbm9ybWFsaXplX2luaXQo KTsKIAogCVZfcGZfbGltaXRzW1BGX0xJTUlUX1NUQVRFU10ubGltaXQgPSBQRlNUQVRFX0hJV0FU OwogCVZfcGZfbGltaXRzW1BGX0xJTUlUX1NSQ19OT0RFU10ubGltaXQgPSBQRlNOT0RFX0hJV0FU OwpAQCAtMjg3LDcgKzI4OCw2MyBAQAogCiAJcmV0dXJuICgwKTsKIH0KK1ZORVRfU1lTSU5JVChw Zl92bmV0X2luaXQsIFNJX1NVQl9QUk9UT19JRkFUVEFDSERPTUFJTiwgU0lfT1JERVJfQU5ZIC0g MjU1LAorICAgIHBmX3ZuZXRfaW5pdCwgTlVMTCk7CiAKK3N0YXRpYyBpbnQKK3BmX3ZuZXRfdW5p bml0KHZvaWQpCit7CisJaW50IGVycm9yID0gMDsKKworCW51bWJlcl9vZl92bmV0cy0tOworCUtB U1NFUlQobnVtYmVyX29mX3ZuZXRzID49IDAsICgibnVtYmVyIG9mIHZuZXRzIDwgMCIpKTsKKwor CVBGX1JVTEVTX1JMT0NLKCk7CisJVl9wZl9lbmRfdGhyZWFkcysrOworCVBGX1JVTEVTX1JVTkxP Q0soKTsKKwl3YWtldXAocGZfcHVyZ2VfdGhyZWFkKTsKKwl3aGlsZSAoVl9wZl9lbmRfdGhyZWFk cyA8IDIpCisJCXBhdXNlKCJwZnVubGQiLCBoeiAvIDkpOworCisJVl9wZl9zdGF0dXMucnVubmlu ZyA9IDA7CisJc3dpX3JlbW92ZShWX3BmX3N3aV9jb29raWUpOworCWVycm9yID0gZGVob29rX3Bm KCk7CisJaWYgKGVycm9yKSB7CisJCS8qCisJCSAqIFNob3VsZCBub3QgaGFwcGVuIQorCQkgKiBY WFggRHVlIHRvIGVycm9yIGNvZGUgRVNSQ0gsIGtsZHVubG9hZCB3aWxsIHNob3cKKwkJICogYSBt ZXNzYWdlIGxpa2UgJ05vIHN1Y2ggcHJvY2VzcycuCisJCSAqLworCQlwcmludGYoIiVzIDogcGZp bCB1bnJlZ2lzdGVyYXRpb24gZmFpbFxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIGVycm9y OworCX0KKwlQRl9SVUxFU19XTE9DSygpOworCXNodXRkb3duX3BmKCk7CisJcGZfbm9ybWFsaXpl X2NsZWFudXAoKTsKKwlwZmlfY2xlYW51cCgpOworCXBmcl9jbGVhbnVwKCk7CisJcGZfb3NmcF9m bHVzaCgpOworCXBmX2NsZWFudXAoKTsKKworCS8qCisJICogRm9yIHRoZSBsYXN0IFZORVQgd2Ug cGVyZm9ybSB0aGUgZmluYWwgY2xlYW51cAorCSAqLworCWlmIChudW1iZXJfb2Zfdm5ldHMgPT0g MCkgeworCQlwZl91bmluaXRfZXZlbnRoYW5kbGVycygpOworCQlwZl9tdGFnX2NsZWFudXAoKTsK Kwl9CisJUEZfUlVMRVNfV1VOTE9DSygpOworCWlmIChudW1iZXJfb2Zfdm5ldHMgPT0gMCkgewor CQlkZXN0cm95X2RldihwZl9kZXYpOworCQlyd19kZXN0cm95KCZwZl9ydWxlc19sb2NrKTsKKwkJ c3hfZGVzdHJveSgmcGZfaW9jdGxfbG9jayk7CisJfQorCisJcmV0dXJuIChlcnJvcik7Cit9CitW TkVUX1NZU1VOSU5JVChwZl92bmV0X3VuaW5pdCwgU0lfU1VCX1BST1RPX0lGQVRUQUNIRE9NQUlO LCBTSV9PUkRFUl9BTlkgLSAyNTUsCisgICAgcGZfdm5ldF91bmluaXQsIE5VTEwpOworCiBzdGF0 aWMgc3RydWN0IHBmX3Bvb2wgKgogcGZfZ2V0X3Bvb2woY2hhciAqYW5jaG9yLCB1X2ludDMyX3Qg dGlja2V0LCB1X2ludDhfdCBydWxlX2FjdGlvbiwKICAgICB1X2ludDMyX3QgcnVsZV9udW1iZXIs IHVfaW50OF90IHJfbGFzdCwgdV9pbnQ4X3QgYWN0aXZlLApAQCAtMzcwNywyNyArMzc2NCwxMiBA QAogc3RhdGljIGludAogcGZfbG9hZCh2b2lkKQogewotCWludCBlcnJvcjsKIAotCVZORVRfSVRF UkFUT1JfREVDTCh2bmV0X2l0ZXIpOwotCi0JVk5FVF9MSVNUX1JMT0NLKCk7Ci0JVk5FVF9GT1JF QUNIKHZuZXRfaXRlcikgewotCQlDVVJWTkVUX1NFVCh2bmV0X2l0ZXIpOwotCQlWX3BmX3BmaWxf aG9va2VkID0gMDsKLQkJVl9wZl9lbmRfdGhyZWFkcyA9IDA7Ci0JCVRBSUxRX0lOSVQoJlZfcGZf dGFncyk7Ci0JCVRBSUxRX0lOSVQoJlZfcGZfcWlkcyk7Ci0JCUNVUlZORVRfUkVTVE9SRSgpOwot CX0KLQlWTkVUX0xJU1RfUlVOTE9DSygpOwotCiAJcndfaW5pdCgmcGZfcnVsZXNfbG9jaywgInBm IHJ1bGVzZXRzIik7CiAJc3hfaW5pdCgmcGZfaW9jdGxfbG9jaywgInBmIGlvY3RsIik7Ci0KIAlw Zl9kZXYgPSBtYWtlX2RldigmcGZfY2RldnN3LCAwLCAwLCAwLCAwNjAwLCBQRl9OQU1FKTsKLQlp ZiAoKGVycm9yID0gcGZhdHRhY2goKSkgIT0gMCkKLQkJcmV0dXJuIChlcnJvcik7CisJcGZfbXRh Z19pbml0aWFsaXplKCk7CisgICAgICAgIHBmX2luaXRfZXZlbnRoYW5kbGVycygpOwogCiAJcmV0 dXJuICgwKTsKIH0KQEAgLTM3MzUsNDAgKzM3NzcsOCBAQAogc3RhdGljIGludAogcGZfdW5sb2Fk KHZvaWQpCiB7Ci0JaW50IGVycm9yID0gMDsKIAotCVZfcGZfc3RhdHVzLnJ1bm5pbmcgPSAwOwot CXN3aV9yZW1vdmUoVl9wZl9zd2lfY29va2llKTsKLQllcnJvciA9IGRlaG9va19wZigpOwotCWlm IChlcnJvcikgewotCQkvKgotCQkgKiBTaG91bGQgbm90IGhhcHBlbiEKLQkJICogWFhYIER1ZSB0 byBlcnJvciBjb2RlIEVTUkNILCBrbGR1bmxvYWQgd2lsbCBzaG93Ci0JCSAqIGEgbWVzc2FnZSBs aWtlICdObyBzdWNoIHByb2Nlc3MnLgotCQkgKi8KLQkJcHJpbnRmKCIlcyA6IHBmaWwgdW5yZWdp c3RlcmF0aW9uIGZhaWxcbiIsIF9fRlVOQ1RJT05fXyk7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0J UEZfUlVMRVNfV0xPQ0soKTsKLQlzaHV0ZG93bl9wZigpOwotCVZfcGZfZW5kX3RocmVhZHMgPSAx OwotCXdoaWxlIChWX3BmX2VuZF90aHJlYWRzIDwgMikgewotCQl3YWtldXBfb25lKHBmX3B1cmdl X3RocmVhZCk7Ci0JCXJ3X3NsZWVwKHBmX3B1cmdlX3RocmVhZCwgJnBmX3J1bGVzX2xvY2ssIDAs ICJwZnRtbyIsIDApOwotCX0KLQlwZl9ub3JtYWxpemVfY2xlYW51cCgpOwotCXBmaV9jbGVhbnVw KCk7Ci0JcGZyX2NsZWFudXAoKTsKLQlwZl9vc2ZwX2ZsdXNoKCk7Ci0JcGZfY2xlYW51cCgpOwot CWlmIChJU19ERUZBVUxUX1ZORVQoY3Vydm5ldCkpCi0JCXBmX210YWdfY2xlYW51cCgpOwotCVBG X1JVTEVTX1dVTkxPQ0soKTsKLQlkZXN0cm95X2RldihwZl9kZXYpOwotCXJ3X2Rlc3Ryb3koJnBm X3J1bGVzX2xvY2spOwotCXN4X2Rlc3Ryb3koJnBmX2lvY3RsX2xvY2spOwotCi0JcmV0dXJuIChl cnJvcik7CisJcmV0dXJuICgwKTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvc3lzL25l dHBmaWwvcGYvcGZfaWYuYyBiL3N5cy9uZXRwZmlsL3BmL3BmX2lmLmMKLS0tIGEvc3lzL25ldHBm aWwvcGYvcGZfaWYuYworKysgYi9zeXMvbmV0cGZpbC9wZi9wZl9pZi5jCkBAIC0xMDMsOSArMTAz LDExIEBACiBzdGF0aWMgVk5FVF9ERUZJTkUoc3RydWN0IHBmaV9saXN0LCBwZmlfdW5saW5rZWRf a2lmcyk7CiAjZGVmaW5lCVZfcGZpX3VubGlua2VkX2tpZnMJVk5FVChwZmlfdW5saW5rZWRfa2lm cykKIHN0YXRpYyBzdHJ1Y3QgbXR4IHBmaV91bmxua2RraWZzX210eDsKK01UWF9TWVNJTklUKHBm aV91bmxua2RraWZzX210eCwgJnBmaV91bmxua2RraWZzX210eCwgInBmIHVubGlua2VkIGludGVy ZmFjZXMiLAorICAgIE1UWF9ERUYpOwogCiB2b2lkCi1wZmlfaW5pdGlhbGl6ZSh2b2lkKQorcGZp X3ZuZXRfaW5pdGlhbGl6ZSh2b2lkKQogewogCXN0cnVjdCBpZmdfZ3JvdXAgKmlmZzsKIAlzdHJ1 Y3QgaWZuZXQgKmlmcDsKQEAgLTExNSw4ICsxMTcsNiBAQAogCVZfcGZpX2J1ZmZlciA9IG1hbGxv YyhWX3BmaV9idWZmZXJfbWF4ICogc2l6ZW9mKCpWX3BmaV9idWZmZXIpLAogCSAgICBQRklfTVRZ UEUsIE1fV0FJVE9LKTsKIAotCW10eF9pbml0KCZwZmlfdW5sbmtka2lmc19tdHgsICJwZiB1bmxp bmtlZCBpbnRlcmZhY2VzIiwgTlVMTCwgTVRYX0RFRik7Ci0KIAlraWYgPSBtYWxsb2Moc2l6ZW9m KCpraWYpLCBQRklfTVRZUEUsIE1fV0FJVE9LKTsKIAlQRl9SVUxFU19XTE9DSygpOwogCVZfcGZp X2FsbCA9IHBmaV9raWZfYXR0YWNoKGtpZiwgSUZHX0FMTCk7CkBAIC0xMjMsMTYgKzEyMywyNCBA QAogCVBGX1JVTEVTX1dVTkxPQ0soKTsKIAogCUlGTkVUX1JMT0NLKCk7Ci0JVEFJTFFfRk9SRUFD SChpZmcsICZWX2lmZ19oZWFkLCBpZmdfbmV4dCkKKwlUQUlMUV9GT1JFQUNIKGlmZywgJlZfaWZn X2hlYWQsIGlmZ19uZXh0KSB7CiAJCXBmaV9hdHRhY2hfaWZncm91cChpZmcpOwotCVRBSUxRX0ZP UkVBQ0goaWZwLCAmVl9pZm5ldCwgaWZfbGluaykKKwl9CisJVEFJTFFfRk9SRUFDSChpZnAsICZW X2lmbmV0LCBpZl9saW5rKSB7CisJCUNVUlZORVRfU0VUKGlmcC0+aWZfdm5ldCk7CiAJCXBmaV9h dHRhY2hfaWZuZXQoaWZwKTsKKwkJQ1VSVk5FVF9SRVNUT1JFKCk7CisJfQogCUlGTkVUX1JVTkxP Q0soKTsKK30KIAordm9pZAorcGZfaW5pdF9ldmVudGhhbmRsZXJzKHZvaWQpIHsKKwogCXBmaV9h dHRhY2hfY29va2llID0gRVZFTlRIQU5ETEVSX1JFR0lTVEVSKGlmbmV0X2Fycml2YWxfZXZlbnQs Ci0JICAgIHBmaV9hdHRhY2hfaWZuZXRfZXZlbnQsIE5VTEwsIEVWRU5USEFORExFUl9QUklfQU5Z KTsKKwkgICAgcGZpX2F0dGFjaF9pZm5ldF9ldmVudCwgY3Vydm5ldCwgRVZFTlRIQU5ETEVSX1BS SV9BTlkpOwogCXBmaV9kZXRhY2hfY29va2llID0gRVZFTlRIQU5ETEVSX1JFR0lTVEVSKGlmbmV0 X2RlcGFydHVyZV9ldmVudCwKLQkgICAgcGZpX2RldGFjaF9pZm5ldF9ldmVudCwgTlVMTCwgRVZF TlRIQU5ETEVSX1BSSV9BTlkpOworCSAgICBwZmlfZGV0YWNoX2lmbmV0X2V2ZW50LCBjdXJ2bmV0 LCBFVkVOVEhBTkRMRVJfUFJJX0FOWSk7CiAJcGZpX2F0dGFjaF9ncm91cF9jb29raWUgPSBFVkVO VEhBTkRMRVJfUkVHSVNURVIoZ3JvdXBfYXR0YWNoX2V2ZW50LAogCSAgICBwZmlfYXR0YWNoX2dy b3VwX2V2ZW50LCBjdXJ2bmV0LCBFVkVOVEhBTkRMRVJfUFJJX0FOWSk7CiAJcGZpX2NoYW5nZV9n cm91cF9jb29raWUgPSBFVkVOVEhBTkRMRVJfUkVHSVNURVIoZ3JvdXBfY2hhbmdlX2V2ZW50LApA QCAtMTQwLDEzICsxNDgsMTEgQEAKIAlwZmlfZGV0YWNoX2dyb3VwX2Nvb2tpZSA9IEVWRU5USEFO RExFUl9SRUdJU1RFUihncm91cF9kZXRhY2hfZXZlbnQsCiAJICAgIHBmaV9kZXRhY2hfZ3JvdXBf ZXZlbnQsIGN1cnZuZXQsIEVWRU5USEFORExFUl9QUklfQU5ZKTsKIAlwZmlfaWZhZGRyX2V2ZW50 X2Nvb2tpZSA9IEVWRU5USEFORExFUl9SRUdJU1RFUihpZmFkZHJfZXZlbnQsCi0JICAgIHBmaV9p ZmFkZHJfZXZlbnQsIE5VTEwsIEVWRU5USEFORExFUl9QUklfQU5ZKTsKKwkgICAgcGZpX2lmYWRk cl9ldmVudCwgY3Vydm5ldCwgRVZFTlRIQU5ETEVSX1BSSV9BTlkpOwogfQogCiB2b2lkCi1wZmlf Y2xlYW51cCh2b2lkKQotewotCXN0cnVjdCBwZmlfa2lmICpwOworcGZfdW5pbml0X2V2ZW50aGFu ZGxlcnModm9pZCkgewogCiAJRVZFTlRIQU5ETEVSX0RFUkVHSVNURVIoaWZuZXRfYXJyaXZhbF9l dmVudCwgcGZpX2F0dGFjaF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGlmbmV0 X2RlcGFydHVyZV9ldmVudCwgcGZpX2RldGFjaF9jb29raWUpOwpAQCAtMTU0LDcgKzE2MCwxMyBA QAogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGdyb3VwX2NoYW5nZV9ldmVudCwgcGZpX2NoYW5n ZV9ncm91cF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGdyb3VwX2RldGFjaF9l dmVudCwgcGZpX2RldGFjaF9ncm91cF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVS KGlmYWRkcl9ldmVudCwgcGZpX2lmYWRkcl9ldmVudF9jb29raWUpOworfQogCit2b2lkCitwZmlf Y2xlYW51cCh2b2lkKQoreworCXN0cnVjdCBwZmlfa2lmICpwOworCiAJVl9wZmlfYWxsID0gTlVM TDsKIAl3aGlsZSAoKHAgPSBSQl9NSU4ocGZpX2lmaGVhZCwgJlZfcGZpX2lmcykpKSB7CiAJCVJC X1JFTU9WRShwZmlfaWZoZWFkLCAmVl9wZmlfaWZzLCBwKTsKQEAgLTE2Niw4ICsxNzgsNiBAQAog CQlmcmVlKHAsIFBGSV9NVFlQRSk7CiAJfQogCi0JbXR4X2Rlc3Ryb3koJnBmaV91bmxua2RraWZz X210eCk7Ci0KIAlmcmVlKFZfcGZpX2J1ZmZlciwgUEZJX01UWVBFKTsKIH0KIApAQCAtODEzLDkg KzgyMyw3IEBACiBwZmlfYXR0YWNoX2dyb3VwX2V2ZW50KHZvaWQgKmFyZyAsIHN0cnVjdCBpZmdf Z3JvdXAgKmlmZykKIHsKIAotCUNVUlZORVRfU0VUKChzdHJ1Y3Qgdm5ldCAqKWFyZyk7CiAJcGZp X2F0dGFjaF9pZmdyb3VwKGlmZyk7Ci0JQ1VSVk5FVF9SRVNUT1JFKCk7CiB9CiAKIHN0YXRpYyB2 b2lkCkBAIC04MjUsMTMgKzgzMywxMSBAQAogCiAJa2lmID0gbWFsbG9jKHNpemVvZigqa2lmKSwg UEZJX01UWVBFLCBNX1dBSVRPSyk7CiAKLQlDVVJWTkVUX1NFVCgoc3RydWN0IHZuZXQgKilhcmcp OwogCVBGX1JVTEVTX1dMT0NLKCk7CiAJVl9wZmlfdXBkYXRlKys7CiAJa2lmID0gcGZpX2tpZl9h dHRhY2goa2lmLCBnbmFtZSk7CiAJcGZpX2tpZl91cGRhdGUoa2lmKTsKIAlQRl9SVUxFU19XVU5M T0NLKCk7Ci0JQ1VSVk5FVF9SRVNUT1JFKCk7CiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQg YS9zeXMvbmV0cGZpbC9wZi9wZi5jIGIvc3lzL25ldHBmaWwvcGYvcGYuYwotLS0gYS9zeXMvbmV0 cGZpbC9wZi9wZi5jCisrKyBiL3N5cy9uZXRwZmlsL3BmL3BmLmMKQEAgLTE1MSw2ICsxNTEsNyBA QAogI2RlZmluZQlWX3BmX3NlbmRxdWV1ZQlWTkVUKHBmX3NlbmRxdWV1ZSkKIAogc3RhdGljIHN0 cnVjdCBtdHggcGZfc2VuZHF1ZXVlX210eDsKK01UWF9TWVNJTklUKHBmX3NlbmRxdWV1ZV9tdHgs ICZwZl9zZW5kcXVldWVfbXR4LCAicGYgc2VuZCBxdWV1ZSIsIE1UWF9ERUYpOwogI2RlZmluZQlQ Rl9TRU5EUV9MT0NLKCkJCW10eF9sb2NrKCZwZl9zZW5kcXVldWVfbXR4KQogI2RlZmluZQlQRl9T RU5EUV9VTkxPQ0soKQltdHhfdW5sb2NrKCZwZl9zZW5kcXVldWVfbXR4KQogCkBAIC0xNzIsMTEg KzE3MywxNiBAQAogI2RlZmluZQlWX3BmX292ZXJsb2FkdGFzawlWTkVUKHBmX292ZXJsb2FkdGFz aykKIAogc3RhdGljIHN0cnVjdCBtdHggcGZfb3ZlcmxvYWRxdWV1ZV9tdHg7CitNVFhfU1lTSU5J VChwZl9vdmVybG9hZHF1ZXVlX210eCwgJnBmX292ZXJsb2FkcXVldWVfbXR4LAorICAgICJwZiBv dmVybG9hZC9mbHVzaCBxdWV1ZSIsIE1UWF9ERUYpOworCiAjZGVmaW5lCVBGX09WRVJMT0FEUV9M T0NLKCkJbXR4X2xvY2soJnBmX292ZXJsb2FkcXVldWVfbXR4KQogI2RlZmluZQlQRl9PVkVSTE9B RFFfVU5MT0NLKCkJbXR4X3VubG9jaygmcGZfb3ZlcmxvYWRxdWV1ZV9tdHgpCiAKIFZORVRfREVG SU5FKHN0cnVjdCBwZl9ydWxlcXVldWUsIHBmX3VubGlua2VkX3J1bGVzKTsKIHN0cnVjdCBtdHgg cGZfdW5sbmtkcnVsZXNfbXR4OworTVRYX1NZU0lOSVQocGZfdW5sbmtkcnVsZXNfbXR4LCAmcGZf dW5sbmtkcnVsZXNfbXR4LCAicGYgdW5saW5rZWQgcnVsZXMiLAorICAgIE1UWF9ERUYpOwogCiBz dGF0aWMgVk5FVF9ERUZJTkUodW1hX3pvbmVfdCwJcGZfc291cmNlc196KTsKICNkZWZpbmUJVl9w Zl9zb3VyY2VzX3oJVk5FVChwZl9zb3VyY2VzX3opCkBAIC03NDksNyArNzU1LDcgQEAKIAogLyog UGVyLXZuZXQgZGF0YSBzdG9yYWdlIHN0cnVjdHVyZXMgaW5pdGlhbGl6YXRpb24uICovCiB2b2lk Ci1wZl9pbml0aWFsaXplKCkKK3BmX3ZuZXRfaW5pdGlhbGl6ZSgpCiB7CiAJc3RydWN0IHBmX2tl eWhhc2gJKmtoOwogCXN0cnVjdCBwZl9pZGhhc2gJKmloOwpAQCAtODA5LDEzICs4MTUsOSBAQAog CVNUQUlMUV9JTklUKCZWX3BmX3NlbmRxdWV1ZSk7CiAJU0xJU1RfSU5JVCgmVl9wZl9vdmVybG9h ZHF1ZXVlKTsKIAlUQVNLX0lOSVQoJlZfcGZfb3ZlcmxvYWR0YXNrLCAwLCBwZl9vdmVybG9hZF90 YXNrLCBjdXJ2bmV0KTsKLQltdHhfaW5pdCgmcGZfc2VuZHF1ZXVlX210eCwgInBmIHNlbmQgcXVl dWUiLCBOVUxMLCBNVFhfREVGKTsKLQltdHhfaW5pdCgmcGZfb3ZlcmxvYWRxdWV1ZV9tdHgsICJw ZiBvdmVybG9hZC9mbHVzaCBxdWV1ZSIsIE5VTEwsCi0JICAgIE1UWF9ERUYpOwogCiAJLyogVW5s aW5rZWQsIGJ1dCBtYXkgYmUgcmVmZXJlbmNlZCBydWxlcy4gKi8KIAlUQUlMUV9JTklUKCZWX3Bm X3VubGlua2VkX3J1bGVzKTsKLQltdHhfaW5pdCgmcGZfdW5sbmtkcnVsZXNfbXR4LCAicGYgdW5s aW5rZWQgcnVsZXMiLCBOVUxMLCBNVFhfREVGKTsKIH0KIAogdm9pZApAQCAtODU4LDEwICs4NjAs NiBAQAogCQlmcmVlKHBmc2UsIE1fUEZURU1QKTsKIAl9CiAKLQltdHhfZGVzdHJveSgmcGZfc2Vu ZHF1ZXVlX210eCk7Ci0JbXR4X2Rlc3Ryb3koJnBmX292ZXJsb2FkcXVldWVfbXR4KTsKLQltdHhf ZGVzdHJveSgmcGZfdW5sbmtkcnVsZXNfbXR4KTsKLQogCXVtYV96ZGVzdHJveShWX3BmX3NvdXJj ZXNfeik7CiAJdW1hX3pkZXN0cm95KFZfcGZfc3RhdGVfeik7CiAJdW1hX3pkZXN0cm95KFZfcGZf c3RhdGVfa2V5X3opOwpAQCAtMTQ0OCw3ICsxNDQ2LDYgQEAKIAkJCVBGX1JVTEVTX1JMT0NLKCk7 CiAJCQlWX3BmX2VuZF90aHJlYWRzKys7CiAJCQlQRl9SVUxFU19SVU5MT0NLKCk7Ci0JCQl3YWtl dXAocGZfcHVyZ2VfdGhyZWFkKTsKIAkJCWtwcm9jX2V4aXQoMCk7CiAJCX0KIAkJUEZfUlVMRVNf UlVOTE9DSygpOwpkaWZmIC0tZ2l0IGEvc3lzL25ldC9wZnZhci5oIGIvc3lzL25ldC9wZnZhci5o Ci0tLSBhL3N5cy9uZXQvcGZ2YXIuaAorKysgYi9zeXMvbmV0L3BmdmFyLmgKQEAgLTE0OTQsNyAr MTQ5NCw5IEBACiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmX3J1bGVxdWV1ZSwgcGZfdW5saW5rZWRf cnVsZXMpOwogI2RlZmluZQlWX3BmX3VubGlua2VkX3J1bGVzCVZORVQocGZfdW5saW5rZWRfcnVs ZXMpCiAKLXZvaWQJCQkJIHBmX2luaXRpYWxpemUodm9pZCk7Cit2b2lkCQkJCSBwZl9pbml0X2V2 ZW50aGFuZGxlcnModm9pZCk7Cit2b2lkCQkJCSBwZl91bmluaXRfZXZlbnRoYW5kbGVycyh2b2lk KTsKK3ZvaWQJCQkJIHBmX3ZuZXRfaW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQJCQkJIHBmX210YWdf aW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQJCQkJIHBmX210YWdfY2xlYW51cCh2b2lkKTsKIHZvaWQJ CQkJIHBmX2NsZWFudXAodm9pZCk7CkBAIC0xNTkwLDcgKzE1OTIsNyBAQAogCSAgICBzdHJ1Y3Qg cGZfYWRkciAqLCBzYV9mYW1pbHlfdCk7CiBpbnQJcGZfbWF0Y2hfcG9ydCh1X2ludDhfdCwgdV9p bnQxNl90LCB1X2ludDE2X3QsIHVfaW50MTZfdCk7CiAKLXZvaWQJcGZfbm9ybWFsaXplX2luaXQo dm9pZCk7Cit2b2lkCXBmX3ZuZXRfbm9ybWFsaXplX2luaXQodm9pZCk7CiB2b2lkCXBmX25vcm1h bGl6ZV9jbGVhbnVwKHZvaWQpOwogaW50CXBmX25vcm1hbGl6ZV90Y3AoaW50LCBzdHJ1Y3QgcGZp X2tpZiAqLCBzdHJ1Y3QgbWJ1ZiAqLCBpbnQsIGludCwgdm9pZCAqLAogCSAgICBzdHJ1Y3QgcGZf cGRlc2MgKik7CkBAIC0xNjQ4LDcgKzE2NTAsNyBAQAogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZmlf a2lmICosCQkgcGZpX2FsbCk7CiAjZGVmaW5lCVZfcGZpX2FsbAkgCQkgVk5FVChwZmlfYWxsKQog Ci12b2lkCQkgcGZpX2luaXRpYWxpemUodm9pZCk7Cit2b2lkCQkgcGZpX3ZuZXRfaW5pdGlhbGl6 ZSh2b2lkKTsKIHZvaWQJCSBwZmlfY2xlYW51cCh2b2lkKTsKIHZvaWQJCSBwZmlfa2lmX3JlZihz dHJ1Y3QgcGZpX2tpZiAqKTsKIHZvaWQJCSBwZmlfa2lmX3VucmVmKHN0cnVjdCBwZmlfa2lmICop OwoK --b1_9ba5b83b76886d7d482c70e02f5fe274--