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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5C72C43217 for ; Sat, 19 Nov 2022 05:29:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B71E6B0072; Sat, 19 Nov 2022 00:29:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 266586B0073; Sat, 19 Nov 2022 00:29:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12FAB8E0001; Sat, 19 Nov 2022 00:29:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 005406B0072 for ; Sat, 19 Nov 2022 00:29:44 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B88CB1201A8 for ; Sat, 19 Nov 2022 05:29:44 +0000 (UTC) X-FDA: 80149064688.22.98A6E97 Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [62.89.141.173]) by imf14.hostedemail.com (Postfix) with ESMTP id 2CB8A10000D for ; Sat, 19 Nov 2022 05:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=yRfhb+NrhMCpwQojHAdu4kSKTfkVB70x/cknHkdRPP8=; b=pf87u4oTQjYpt5Kue2sttXTfdD gYe+9YPbM438h4uJ8GHSprDo8rJFusGWG1D7MOnAbza7Zh+mfoIB3Y8Lsi4i12zopiOa+YVy75gCN JuxtOh8IXowqco7em0GWWWFLdl5ge/wecZugF/4GVcGK2scKI2VgO8lD7FAj9yJmO94kuWjMkLmMA ggmMH0Y0X83DwdjRPQ2wTRSuJDrakuAlkwsZkF/yEEuKT4adIYC+FFYGletRX4kqjswewR9CmmCBi hE9eZDaH2thJa+B6RhrG3ry2LdG4TNmDu+6gRr66CxjImNAV/CvWK44oPBy8hV+OzbMPjtmNjbNBS 4BmzBRSA==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.96 #2 (Red Hat Linux)) id 1owGPq-004zW4-20; Sat, 19 Nov 2022 05:29:22 +0000 Date: Sat, 19 Nov 2022 05:29:22 +0000 From: Al Viro To: Liu Shixin Cc: Eric Biederman , Kees Cook , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] binfmt_misc: fix shift-out-of-bounds in check_special_flags Message-ID: References: <20221102025123.1117184-1-liushixin2@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221102025123.1117184-1-liushixin2@huawei.com> ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1668835783; a=rsa-sha256; cv=none; b=hoxphckacAM5txt4TLFV3Bh707VbquHPeJM0caZ3WbgYguYdvGM8KE8jcFsAYOh60JHVgW PxmTQbju0aUFGrlM3TOPLe17b7ub7SPGpMyHygAv0boOs/T+TCE3lvqZtagRykktgXRl5s WPwD3e+PZOzgPwop+LBNCfFyAsFZeac= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=pf87u4oT; spf=none (imf14.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1668835783; h=from:from:sender:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=yRfhb+NrhMCpwQojHAdu4kSKTfkVB70x/cknHkdRPP8=; b=kMi+Q2qyEq++3WFyAMA7lU4OpIzIC/lu+J25ENN5KLEB6nza4Tdmn2uP7Ur0Dy6L56APvN 88E1Mmv9LvVRCYOzirKkPggZhAZZ8HHNBOb6VzvLSQCTU225DCGP5DG1/O0ZLImeOoJuiA 84UmU3No3arOmZlSh0dlunP/7FvvJPg= X-Stat-Signature: 7fayw117jqiinx3immqmrswwof8zrbty X-Rspamd-Queue-Id: 2CB8A10000D Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=pf87u4oT; spf=none (imf14.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1668835782-890235 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Nov 02, 2022 at 10:51:23AM +0800, Liu Shixin wrote: > UBSAN reported a shift-out-of-bounds warning: > > left shift of 1 by 31 places cannot be represented in type 'int' > Call Trace: > > __dump_stack lib/dump_stack.c:88 [inline] > dump_stack_lvl+0x8d/0xcf lib/dump_stack.c:106 > ubsan_epilogue+0xa/0x44 lib/ubsan.c:151 > __ubsan_handle_shift_out_of_bounds+0x1e7/0x208 lib/ubsan.c:322 > check_special_flags fs/binfmt_misc.c:241 [inline] > create_entry fs/binfmt_misc.c:456 [inline] > bm_register_write+0x9d3/0xa20 fs/binfmt_misc.c:654 > vfs_write+0x11e/0x580 fs/read_write.c:582 > ksys_write+0xcf/0x120 fs/read_write.c:637 > do_syscall_x64 arch/x86/entry/common.c:50 [inline] > do_syscall_64+0x34/0x80 arch/x86/entry/common.c:80 > entry_SYSCALL_64_after_hwframe+0x63/0xcd > RIP: 0033:0x4194e1 > > Since the type of Node's flags is unsigned long, we should define these > macros with same type too. We are limited to 32 bits anyway. More interesting question here is what's the point of having those bits that high anyway?