From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1AE51DDF1; Sat, 13 Apr 2024 14:43:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713019406; cv=none; b=b1AV9WOjGDqAsyiSYqJeGWy6oEp4/Xb1Cu60d0mKGAUqWQb0A+CX7acdpDK9DJ9lQbVTpAgJ92B3+Q4t87IaQeP+oUfHJ1tGp+IUeLXSnP4yyK++f3mtHD207liJAstyepCDbMi07rex6Ibc1tR/bCdBbGrrckvEQAqUmtciwVI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713019406; c=relaxed/simple; bh=F3WSVlUVeB9L++bk4Ow6JCLg2bFHCz7po4reWSuVgdM=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mTc/b6uf5MdDkKUZvH8GbWguY1+VDGvkckr4qN6tZ6aMS8g4Ll+fwkwpcgHVjGxyfWuQCI/EOtuCZ3yfT95ohE3f2cVD5wT+xmIMyrn3kp31VPU3UdvmjiLKZrvVohPYcYzeu0J/kn2rPZcUh69QTWseMpDrw2ZiSMDkmAt7v1Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=0b1WjH7d; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=TGTnmWCA; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="0b1WjH7d"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="TGTnmWCA" Date: Sat, 13 Apr 2024 16:43:18 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1713019401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=94QYgK1moV3EtlUcP69QNbkfRF65WDHcbcu3aXuhzMA=; b=0b1WjH7dMokMw4gA5sphaavop2jbUouwWon4BETiEJ3Auh4mkbDA6CaWbyUNg2HXh5x6sV ONFBFVjW0E764jN462mFwDfHi2QRFkYfyeIHxJcy3VbT1aBnTVP5C58iksUwVE6rUrLEKJ 5MlqE2iqe6pljzIGKfUbctAoWA2M34tOOrMm3oVsdNYvuv4Pxq5J39z0MKV5uCYzKKqh3U 80jVJeaID7Ii+A4CUhy9Q4fzgdYP/hww5l96idQt9myulM92AIR61c34rdO2vrrS2KQlcV /KP8sifRsZXoC18ILZxYH35jCImumZRAwqv918IPuYpQQPJGbQyHNSiefxQk3w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1713019401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=94QYgK1moV3EtlUcP69QNbkfRF65WDHcbcu3aXuhzMA=; b=TGTnmWCAiCLkdCMHYZVFT8OBvD3zVHceh/mgLEaqFERDP2BwWHD5eEVTI9rdWYMR4gvfxq 35B6dGXcXkTn8uDA== From: Nam Cao To: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= Cc: linux-fsdevel@vger.kernel.org, Alexander Viro , Christian Brauner , Jan Kara , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, "Theodore Ts'o" , Andreas Dilger , linux-ext4@vger.kernel.org, Conor Dooley Subject: Re: riscv32 EXT4 splat, 6.8 regression? Message-ID: <20240413164318.7260c5ef@namcao> In-Reply-To: <878r1ibpdn.fsf@all.your.base.are.belong.to.us> References: <878r1ibpdn.fsf@all.your.base.are.belong.to.us> Precedence: bulk X-Mailing-List: linux-ext4@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 2024-04-12 Bj=C3=B6rn T=C3=B6pel wrote: > Hi! >=20 > I've been looking at an EXT4 splat on riscv32, that LKFT found [1]: >=20 > | EXT4-fs (vda): mounted filesystem 13697a42-d10e-4a9e-8e56-cb9083be92f= 9 ro with ordered data mode. Quota mode: disabled. > | VFS: Mounted root (ext4 filesystem) readonly on device 254:0. > | Unable to handle kernel NULL pointer dereference at virtual address 0= 0000006 > | Oops [#1] > | Modules linked in: > | CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.8.0 #41 > | Hardware name: riscv-virtio,qemu (DT) > | epc : ext4_search_dir+0x52/0xe4 > | ra : __ext4_find_entry+0x1d6/0x578 > | epc : c035b60e ra : c035b876 sp : c253fc10 > | gp : c21a7380 tp : c25c8000 t0 : 44c0657f > | t1 : 0000000c t2 : 1de5b089 s0 : c253fc50 > | s1 : 00000000 a0 : fffffffc a1 : fffff000 > | a2 : 00000000 a3 : c29c04f8 a4 : c253fd00 > | a5 : 00000000 a6 : c253fcfc a7 : fffffff3 > | s2 : 00001000 s3 : 00000000 s4 : 00001000 > | s5 : c29c04f8 s6 : c292db40 s7 : c253fcfc > | s8 : fffffff7 s9 : c253fd00 s10: fffff000 > | s11: c292db40 t3 : 00000007 t4 : 5e8b4525 > | t5 : 00000000 t6 : 00000000 > | status: 00000120 badaddr: 00000006 cause: 0000000d > | [] ext4_search_dir+0x52/0xe4 > | [] __ext4_find_entry+0x1d6/0x578 > | [] ext4_lookup+0x92/0x200 > | [] __lookup_slow+0x8e/0x142 > | [] walk_component+0x104/0x174 > | [] path_lookupat+0x78/0x182 > | [] filename_lookup+0x96/0x158 > | [] kern_path+0x38/0x56 > | [] init_mount+0x46/0x96 > | [] devtmpfs_mount+0x44/0x7a > | [] prepare_namespace+0x226/0x27c > | [] kernel_init_freeable+0x27e/0x2a0 > | [] kernel_init+0x2a/0x158 > | [] ret_from_fork+0xe/0x20 > | Code: 84ae a809 d303 0044 949a 0f63 0603 991a fd63 0584 (c603) 0064=20 > | ---[ end trace 0000000000000000 ]--- > | Kernel panic - not syncing: Attempted to kill init! exitcode=3D0x0000= 000b >=20 > This was not present in 6.7. Bisection wasn't really helpful (to me at > least); I got it down to commit c604110e662a ("Merge tag 'vfs-6.8.misc' > of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs"), and when I > revert the commits in the vfs merge the splat went away, but I *really* > struggle to see how those are related... >=20 > What I see in ext4_search_dir() is that search_buf is 0xfffff000, and at > some point the address wraps to zero, and boom. I doubt that 0xfffff000 > is a sane address. I have zero knowledge about file system, but I think it's an integer overflow problem. The calculation of "dlimit" overflow and dlimit wraps around, this leads to wrong comparison later on. I guess that explains why your bisect and Conor's bisect results are strange: the bug has been here for quite some time, but it only appears when "dlimit" happens to overflow. It can be fixed by re-arrange the comparisons a bit. Can you give the below patch a try? Best regards, Nam diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 05b647e6bc19..71b88b33b676 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1532,15 +1532,13 @@ int ext4_search_dir(struct buffer_head *bh, char *s= earch_buf, int buf_size, unsigned int offset, struct ext4_dir_entry_2 **res_dir) { struct ext4_dir_entry_2 * de; - char * dlimit; int de_len; =20 de =3D (struct ext4_dir_entry_2 *)search_buf; - dlimit =3D search_buf + buf_size; - while ((char *) de < dlimit - EXT4_BASE_DIR_LEN) { + while ((char *) de - search_buf < buf_size - EXT4_BASE_DIR_LEN) { /* this code is executed quadratically often */ /* do minimal checking `by hand' */ - if (de->name + de->name_len <=3D dlimit && + if (de->name + de->name_len - search_buf <=3D buf_size && ext4_match(dir, fname, de)) { /* found a match - just to be sure, do * a full check */ From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 85390C4345F for ; Sat, 13 Apr 2024 14:43:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=E85ooimqzDK/U8Rm4FGgCwYqSMcLzwUFbZv0z3TSs+g=; b=082aPeD9TzOqDA zPCSoEWROBV6lX2uEBdkzbacWck+2dhZAO4HKAR1nxh1OVMMYFyqiedegC/Ki44KRkqSOOruIDUc3 XS4todPbYsABFd+MACv3EbbpXH8HwKDb7ZZ9s5e08Rbqrj3rJPSFtn8UK8T1JrtvOIMFq9CXEGpZf RjUGAXi8m5MQFSCYiovd0rDxgxmZ6sxzGUwuMiHmgM5o6uLRps3xv36bkKvtBQt7nciKmc7R9Nl71 F1UtY9WjwioZWVLmhAmf7462r5p3/VSZ3dB1eWp9yjnEgFqwjJBFW6b2Su+bdpSiabvlXUXdyljSA BvSm6Rfvz/DaiAqwYL0A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvebU-00000003MRG-1aUJ; Sat, 13 Apr 2024 14:43:40 +0000 Received: from galois.linutronix.de ([193.142.43.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvebO-00000003MOU-3UxL for linux-riscv@lists.infradead.org; Sat, 13 Apr 2024 14:43:39 +0000 Date: Sat, 13 Apr 2024 16:43:18 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1713019401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=94QYgK1moV3EtlUcP69QNbkfRF65WDHcbcu3aXuhzMA=; b=0b1WjH7dMokMw4gA5sphaavop2jbUouwWon4BETiEJ3Auh4mkbDA6CaWbyUNg2HXh5x6sV ONFBFVjW0E764jN462mFwDfHi2QRFkYfyeIHxJcy3VbT1aBnTVP5C58iksUwVE6rUrLEKJ 5MlqE2iqe6pljzIGKfUbctAoWA2M34tOOrMm3oVsdNYvuv4Pxq5J39z0MKV5uCYzKKqh3U 80jVJeaID7Ii+A4CUhy9Q4fzgdYP/hww5l96idQt9myulM92AIR61c34rdO2vrrS2KQlcV /KP8sifRsZXoC18ILZxYH35jCImumZRAwqv918IPuYpQQPJGbQyHNSiefxQk3w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1713019401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=94QYgK1moV3EtlUcP69QNbkfRF65WDHcbcu3aXuhzMA=; b=TGTnmWCAiCLkdCMHYZVFT8OBvD3zVHceh/mgLEaqFERDP2BwWHD5eEVTI9rdWYMR4gvfxq 35B6dGXcXkTn8uDA== From: Nam Cao To: =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= Cc: linux-fsdevel@vger.kernel.org, Alexander Viro , Christian Brauner , Jan Kara , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, "Theodore Ts'o" , Andreas Dilger , linux-ext4@vger.kernel.org, Conor Dooley Subject: Re: riscv32 EXT4 splat, 6.8 regression? Message-ID: <20240413164318.7260c5ef@namcao> In-Reply-To: <878r1ibpdn.fsf@all.your.base.are.belong.to.us> References: <878r1ibpdn.fsf@all.your.base.are.belong.to.us> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240413_074335_190260_DB32622D X-CRM114-Status: GOOD ( 16.31 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gMjAyNC0wNC0xMiBCasO2cm4gVMO2cGVsIHdyb3RlOgo+IEhpIQo+IAo+IEkndmUgYmVlbiBs b29raW5nIGF0IGFuIEVYVDQgc3BsYXQgb24gcmlzY3YzMiwgdGhhdCBMS0ZUIGZvdW5kIFsxXToK PiAKPiAgIHwgRVhUNC1mcyAodmRhKTogbW91bnRlZCBmaWxlc3lzdGVtIDEzNjk3YTQyLWQxMGUt NGE5ZS04ZTU2LWNiOTA4M2JlOTJmOSBybyB3aXRoIG9yZGVyZWQgZGF0YSBtb2RlLiBRdW90YSBt b2RlOiBkaXNhYmxlZC4KPiAgIHwgVkZTOiBNb3VudGVkIHJvb3QgKGV4dDQgZmlsZXN5c3RlbSkg cmVhZG9ubHkgb24gZGV2aWNlIDI1NDowLgo+ICAgfCBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBO VUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDA2Cj4gICB8 IE9vcHMgWyMxXQo+ICAgfCBNb2R1bGVzIGxpbmtlZCBpbjoKPiAgIHwgQ1BVOiAxIFBJRDogMSBD b21tOiBzd2FwcGVyLzAgTm90IHRhaW50ZWQgNi44LjAgIzQxCj4gICB8IEhhcmR3YXJlIG5hbWU6 IHJpc2N2LXZpcnRpbyxxZW11IChEVCkKPiAgIHwgZXBjIDogZXh0NF9zZWFyY2hfZGlyKzB4NTIv MHhlNAo+ICAgfCAgcmEgOiBfX2V4dDRfZmluZF9lbnRyeSsweDFkNi8weDU3OAo+ICAgfCBlcGMg OiBjMDM1YjYwZSByYSA6IGMwMzViODc2IHNwIDogYzI1M2ZjMTAKPiAgIHwgIGdwIDogYzIxYTcz ODAgdHAgOiBjMjVjODAwMCB0MCA6IDQ0YzA2NTdmCj4gICB8ICB0MSA6IDAwMDAwMDBjIHQyIDog MWRlNWIwODkgczAgOiBjMjUzZmM1MAo+ICAgfCAgczEgOiAwMDAwMDAwMCBhMCA6IGZmZmZmZmZj IGExIDogZmZmZmYwMDAKPiAgIHwgIGEyIDogMDAwMDAwMDAgYTMgOiBjMjljMDRmOCBhNCA6IGMy NTNmZDAwCj4gICB8ICBhNSA6IDAwMDAwMDAwIGE2IDogYzI1M2ZjZmMgYTcgOiBmZmZmZmZmMwo+ ICAgfCAgczIgOiAwMDAwMTAwMCBzMyA6IDAwMDAwMDAwIHM0IDogMDAwMDEwMDAKPiAgIHwgIHM1 IDogYzI5YzA0ZjggczYgOiBjMjkyZGI0MCBzNyA6IGMyNTNmY2ZjCj4gICB8ICBzOCA6IGZmZmZm ZmY3IHM5IDogYzI1M2ZkMDAgczEwOiBmZmZmZjAwMAo+ICAgfCAgczExOiBjMjkyZGI0MCB0MyA6 IDAwMDAwMDA3IHQ0IDogNWU4YjQ1MjUKPiAgIHwgIHQ1IDogMDAwMDAwMDAgdDYgOiAwMDAwMDAw MAo+ICAgfCBzdGF0dXM6IDAwMDAwMTIwIGJhZGFkZHI6IDAwMDAwMDA2IGNhdXNlOiAwMDAwMDAw ZAo+ICAgfCBbPGMwMzViNjBlPl0gZXh0NF9zZWFyY2hfZGlyKzB4NTIvMHhlNAo+ICAgfCBbPGMw MzViODc2Pl0gX19leHQ0X2ZpbmRfZW50cnkrMHgxZDYvMHg1NzgKPiAgIHwgWzxjMDM1YmNhYT5d IGV4dDRfbG9va3VwKzB4OTIvMHgyMDAKPiAgIHwgWzxjMDI5NWMxND5dIF9fbG9va3VwX3Nsb3cr MHg4ZS8weDE0Mgo+ICAgfCBbPGMwMjk5NDNhPl0gd2Fsa19jb21wb25lbnQrMHgxMDQvMHgxNzQK PiAgIHwgWzxjMDI5OWYxOD5dIHBhdGhfbG9va3VwYXQrMHg3OC8weDE4Mgo+ICAgfCBbPGMwMjli MjRjPl0gZmlsZW5hbWVfbG9va3VwKzB4OTYvMHgxNTgKPiAgIHwgWzxjMDI5YjM0Nj5dIGtlcm5f cGF0aCsweDM4LzB4NTYKPiAgIHwgWzxjMGMxYmVlND5dIGluaXRfbW91bnQrMHg0Ni8weDk2Cj4g ICB8IFs8YzBjMmFlMWM+XSBkZXZ0bXBmc19tb3VudCsweDQ0LzB4N2EKPiAgIHwgWzxjMGMwMWMy Nj5dIHByZXBhcmVfbmFtZXNwYWNlKzB4MjI2LzB4MjdjCj4gICB8IFs8YzBjMDExMzA+XSBrZXJu ZWxfaW5pdF9mcmVlYWJsZSsweDI3ZS8weDJhMAo+ICAgfCBbPGMwYjc4NDAyPl0ga2VybmVsX2lu aXQrMHgyYS8weDE1OAo+ICAgfCBbPGMwYjgyYmYyPl0gcmV0X2Zyb21fZm9yaysweGUvMHgyMAo+ ICAgfCBDb2RlOiA4NGFlIGE4MDkgZDMwMyAwMDQ0IDk0OWEgMGY2MyAwNjAzIDk5MWEgZmQ2MyAw NTg0IChjNjAzKSAwMDY0IAo+ICAgfCAtLS1bIGVuZCB0cmFjZSAwMDAwMDAwMDAwMDAwMDAwIF0t LS0KPiAgIHwgS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IEF0dGVtcHRlZCB0byBraWxsIGlu aXQhIGV4aXRjb2RlPTB4MDAwMDAwMGIKPiAKPiBUaGlzIHdhcyBub3QgcHJlc2VudCBpbiA2Ljcu IEJpc2VjdGlvbiB3YXNuJ3QgcmVhbGx5IGhlbHBmdWwgKHRvIG1lIGF0Cj4gbGVhc3QpOyBJIGdv dCBpdCBkb3duIHRvIGNvbW1pdCBjNjA0MTEwZTY2MmEgKCJNZXJnZSB0YWcgJ3Zmcy02LjgubWlz YycKPiBvZiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdmZz L3ZmcyIpLCBhbmQgd2hlbiBJCj4gcmV2ZXJ0IHRoZSBjb21taXRzIGluIHRoZSB2ZnMgbWVyZ2Ug dGhlIHNwbGF0IHdlbnQgYXdheSwgYnV0IEkgKnJlYWxseSoKPiBzdHJ1Z2dsZSB0byBzZWUgaG93 IHRob3NlIGFyZSByZWxhdGVkLi4uCj4gCj4gV2hhdCBJIHNlZSBpbiBleHQ0X3NlYXJjaF9kaXIo KSBpcyB0aGF0IHNlYXJjaF9idWYgaXMgMHhmZmZmZjAwMCwgYW5kIGF0Cj4gc29tZSBwb2ludCB0 aGUgYWRkcmVzcyB3cmFwcyB0byB6ZXJvLCBhbmQgYm9vbS4gSSBkb3VidCB0aGF0IDB4ZmZmZmYw MDAKPiBpcyBhIHNhbmUgYWRkcmVzcy4KCkkgaGF2ZSB6ZXJvIGtub3dsZWRnZSBhYm91dCBmaWxl IHN5c3RlbSwgYnV0IEkgdGhpbmsgaXQncyBhbiBpbnRlZ2VyCm92ZXJmbG93IHByb2JsZW0uIFRo ZSBjYWxjdWxhdGlvbiBvZiAiZGxpbWl0IiBvdmVyZmxvdyBhbmQgZGxpbWl0IHdyYXBzCmFyb3Vu ZCwgdGhpcyBsZWFkcyB0byB3cm9uZyBjb21wYXJpc29uIGxhdGVyIG9uLgoKSSBndWVzcyB0aGF0 IGV4cGxhaW5zIHdoeSB5b3VyIGJpc2VjdCBhbmQgQ29ub3IncyBiaXNlY3QgcmVzdWx0cyBhcmUK c3RyYW5nZTogdGhlIGJ1ZyBoYXMgYmVlbiBoZXJlIGZvciBxdWl0ZSBzb21lIHRpbWUsIGJ1dCBp dCBvbmx5IGFwcGVhcnMKd2hlbiAiZGxpbWl0IiBoYXBwZW5zIHRvIG92ZXJmbG93LgoKSXQgY2Fu IGJlIGZpeGVkIGJ5IHJlLWFycmFuZ2UgdGhlIGNvbXBhcmlzb25zIGEgYml0LiBDYW4geW91IGdp dmUgdGhlCmJlbG93IHBhdGNoIGEgdHJ5PwoKQmVzdCByZWdhcmRzLApOYW0KCmRpZmYgLS1naXQg YS9mcy9leHQ0L25hbWVpLmMgYi9mcy9leHQ0L25hbWVpLmMKaW5kZXggMDViNjQ3ZTZiYzE5Li43 MWI4OGIzM2I2NzYgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvbmFtZWkuYworKysgYi9mcy9leHQ0L25h bWVpLmMKQEAgLTE1MzIsMTUgKzE1MzIsMTMgQEAgaW50IGV4dDRfc2VhcmNoX2RpcihzdHJ1Y3Qg YnVmZmVyX2hlYWQgKmJoLCBjaGFyICpzZWFyY2hfYnVmLCBpbnQgYnVmX3NpemUsCiAJCSAgICB1 bnNpZ25lZCBpbnQgb2Zmc2V0LCBzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKnJlc19kaXIpCiB7 CiAJc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKiBkZTsKLQljaGFyICogZGxpbWl0OwogCWludCBk ZV9sZW47CiAKIAlkZSA9IChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKXNlYXJjaF9idWY7Ci0J ZGxpbWl0ID0gc2VhcmNoX2J1ZiArIGJ1Zl9zaXplOwotCXdoaWxlICgoY2hhciAqKSBkZSA8IGRs aW1pdCAtIEVYVDRfQkFTRV9ESVJfTEVOKSB7CisJd2hpbGUgKChjaGFyICopIGRlIC0gc2VhcmNo X2J1ZiA8IGJ1Zl9zaXplIC0gRVhUNF9CQVNFX0RJUl9MRU4pIHsKIAkJLyogdGhpcyBjb2RlIGlz IGV4ZWN1dGVkIHF1YWRyYXRpY2FsbHkgb2Z0ZW4gKi8KIAkJLyogZG8gbWluaW1hbCBjaGVja2lu ZyBgYnkgaGFuZCcgKi8KLQkJaWYgKGRlLT5uYW1lICsgZGUtPm5hbWVfbGVuIDw9IGRsaW1pdCAm JgorCQlpZiAoZGUtPm5hbWUgKyBkZS0+bmFtZV9sZW4gLSBzZWFyY2hfYnVmIDw9IGJ1Zl9zaXpl ICYmCiAJCSAgICBleHQ0X21hdGNoKGRpciwgZm5hbWUsIGRlKSkgewogCQkJLyogZm91bmQgYSBt YXRjaCAtIGp1c3QgdG8gYmUgc3VyZSwgZG8KIAkJCSAqIGEgZnVsbCBjaGVjayAqLwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFp bGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=