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 8D263EB64DA for ; Sat, 17 Jun 2023 09:00:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A57BE8E0001; Sat, 17 Jun 2023 05:00:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A07AE6B0075; Sat, 17 Jun 2023 05:00:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8CF758E0001; Sat, 17 Jun 2023 05:00:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7AB796B0072 for ; Sat, 17 Jun 2023 05:00:00 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3717212016D for ; Sat, 17 Jun 2023 09:00:00 +0000 (UTC) X-FDA: 80911642560.30.F0C8A1D Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) by imf08.hostedemail.com (Postfix) with ESMTP id 65E8E16001A for ; Sat, 17 Jun 2023 08:59:57 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=MxKH+RcV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of zhiguangni01@gmail.com designates 209.85.128.180 as permitted sender) smtp.mailfrom=zhiguangni01@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686992397; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DAxlbr70nVGLPeolqN3TzyVnfvZ6eeI7P/kXQdKGTBs=; b=GkKD+jEr9qplF+8M2FUaYQygzy613o+aAsUufLZK5gllrHz6qRz7Xv84sKm9O7BaY86MUK 4HAAuOSGibjf9d5qEwDhp/CX+lfdaUDzTlpqdeQAIPgbOEU6zyZfHMCaHw2FyCjFrm187P c4JpmHA1gdGZZigmj9idrfEIfN42WsE= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=MxKH+RcV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of zhiguangni01@gmail.com designates 209.85.128.180 as permitted sender) smtp.mailfrom=zhiguangni01@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686992397; a=rsa-sha256; cv=none; b=asOf4twFCVWrA6cZr/1cGAV9j0SxKZsq1wMB4NvfKFXBJyNOtovgFOW3Ngxo093gQbO/6M fIv0A0zPAizwltCnku+YzY/Etuk9W98l0+WSUNyz838y440n61WuBR4qOw7Jl4qZBw5EgJ jf6VSSQJGIQ9g6goSmxegMEGw0bBfwc= Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-57012b2973eso20164057b3.2 for ; Sat, 17 Jun 2023 01:59:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686992396; x=1689584396; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=DAxlbr70nVGLPeolqN3TzyVnfvZ6eeI7P/kXQdKGTBs=; b=MxKH+RcVMjAIkHZiyEi8+5ceCL20HNh47UOTrkMz/aREhS7iLhXGH+koJ5DRNoE23U UTYnDflrRNqzZ8bFZK6GGRblbtbCQtwP1cL+rIjN54mqBumgm4LWjAzHNnZaMJIpdLY3 UdAIIbLzcrGWq5DtnKsxyiAUJ65Az5S3hLXzye+6Li8ayjcz0L/yhNV5GODBcK0wNAAI ZqimddRh4dT+fKd/GYU5PBAjSxqGVVJHZHyTsxWoAKAN6S+YMoiUpHg0MnLVkNgTRRgw ZqFHEb3fMJwpOrlDUxmzpz3Eo26NaX4uV5TD/zcWBkkqDPIZRV6engawhcxQHYIIHCc4 CUeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686992396; x=1689584396; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DAxlbr70nVGLPeolqN3TzyVnfvZ6eeI7P/kXQdKGTBs=; b=Ut+k+shCzDGm3NuAQZQ8juP4DsdxIRjSbYKevvjKfPJ0SGoc2ME22hwLK6he17JgOQ PEao26DgfIMLRY3AcLpNtvT5cbtr3nMIjehTUxLGGpiSOr1cgOzXbrXNigK5nbbgc+ww psz3jRmX5GYZvEzcOSh5ustBQrkBZMWDkmagV8kAjSxUXIf+Xr2vz7Q+5B/qeXm/667r H95095Bvw8rKWEk9wPYbTKeqJq51huV+r5CPATsl8qoofAvHwOKGIE2C4lej6PadIW+C yj44cqJoRGtj10+/7EJdv+gvvS7w7ftw1qo1WCMO6+Wo1lj67g7rnVtaLQlHa0HyRrC9 rdhw== X-Gm-Message-State: AC+VfDwvAdiBg85dwMHqJTVNZQ4ttn3Ib5Yz6RWivMRS3osVPMBsvQVx bq4Ent547OJKbi29354GqCPg7vqoSrrRu05yjao= X-Google-Smtp-Source: ACHHUZ5iThchRPHO1uX2naoiBRIc1k7oR/L5+4esIYomcMWDiLMvKWV8Fgh9XEY9sPw+C//l+o6yBnRtovHIl3QSavY= X-Received: by 2002:a25:bccf:0:b0:bac:b478:d215 with SMTP id l15-20020a25bccf000000b00bacb478d215mr1910617ybm.9.1686992396239; Sat, 17 Jun 2023 01:59:56 -0700 (PDT) MIME-Version: 1.0 References: <20230617044036.3985524-1-zhiguangni01@gmail.com> <20230616224407.863c74a3dc9d4f1427802f91@linux-foundation.org> <20230617070051.GU52412@kernel.org> In-Reply-To: <20230617070051.GU52412@kernel.org> From: Liam Ni Date: Sat, 17 Jun 2023 16:59:46 +0800 Message-ID: Subject: Re: [PATCH] mm/sparse:avoid null pointer access in memory_present() To: Mike Rapoport Cc: Andrew Morton , dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 65E8E16001A X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: k76fbip5pf9eox87hjikptiubtnc9ob7 X-HE-Tag: 1686992397-285972 X-HE-Meta: U2FsdGVkX1+tqWG8dhvPRQNTyKAJ2h+pBQQYzFQjKc4q/pKxcRZJyDY5nvgjx2rkNR0iiu8vHIuCDxLUTPC2FWcsoM5mLAqD+8PDT7VhDxo8sm6jUR0GqcI46xXLBZE6ygBVMcsIditXV0tcLjeHPAAWTk4lzUTn7lE789zZ946DJsbsH1efEtNSdg+JDePiToC3cR/z51astkGIJY4b1qc/K6G6vyalupC+E9eBoPpnrM92QS95myJh0Swn8U/Er3vaQtzZOhXCiDGuVD7G6c9IWLZC8canMXw72hKkX9oJa2Nau8F5pZLmzjNSybTLVbYk3g2I9IBF+81Kgq5dcYCHpRHTGQBr2PzpiSi0s90Y0fiO2Opx80I9eOmwTRv1BoXbifAHfR67+mtx5E09t723o1KLiz9iTRxVJmLG57AXUQB+GKqHYd+BggTuJRir7FWW8tEYc/bncn1SuiTUc3dMzc9qjOEQr3wDOBVAes+FS1uYd1itIqVQmXi3Y7oxn1z6YB2NSUVXIrAbtrqMXE2F8zJVllQFIcN/cclAD1gwry9i+vNmPQ5UbrDYq6j5liUElMPFZP7m3T300DaKDqdKjnBYGfl1I8pUWMBK7WrtdcXmky6u9ADRyp0ur2sFKJV8xYtFCyYJkm3yJ5Qnxit1TSJtmrCcCrm3UJC4RfYJ+UEcAsziPsf6dKXqK9S6XzytymbGyztyFIdJHRgCusiupb5Cwt+kgSZ43ObW7qoKZY7y1cUV+EQ70n7XnPoeeUw0lfe3rlRQHGE+x2x7w6sivLyeFxGEXMOSkrkMqrFHwdQlQYnQ0A4Sdh0T+333GTgLKVEU0opmUV4whMwZL3tDM2gFHaCK4zNjXoSbyg0N4NCMk/GyZaXfhRNMSRsb9ykwxEAlA72c7kCA8293+hO0FEHqEIyYlDK6UG8x11MF+ilHzKDMV5buIdedbwnmY8FoDncuTeXZ1NNbVSf v8yN9/Mr KuyrI8TmHyok6MfvLz+Dc73qX4cUZGUIdFNloLvXxOT9yVUDayK/EYPmMYviVieQOXBIzFxHdjS1rSfMsXd4Nw/cJ/IoWJm9j2aRd02msifWpca3q3F/e8ddFiGyAw57sCmRWkTWGtcOuDE5dC+z+GOeZypw1TajcXc21HfiFY7w4/07xIExpcIl9yr/hacsaMQkW/MFxfhyRpQ1wLAEWCd2VCJRD2TyYVHHmeu1VYRged+/GO/gQ5SLlUXjrTTgI6MFuxI+L3bVJoEs4FRP7BW88jckaifi1ZNGaOu5Ub0yrS/cE0Q9EFT6RSLgJNmiCgaBjquWViXiFD8c9Ff7KroHRNmP/WuQpel+hARFazgOeIyBhjFUTklurpnvTrlkTAQWPbG8jkPrUBP/48/DOKO09AmEx8qPEYftL5iHEQaAerORaJU9G1cvsQejEbpQ1+gP26GJC33BMaw0t7nt79rH0KQ+6WUHh1klSaj8TEmmU4eocwNY/a8/0SKfwgK4A1JF0GV246VmBt/5Unux6Kte4QpbdpIe9Db5l 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 Sat, 17 Jun 2023 at 15:01, Mike Rapoport wrote: > > On Sat, Jun 17, 2023 at 02:17:58PM +0800, Liam Ni wrote: > > On Sat, 17 Jun 2023 at 13:44, Andrew Morton = wrote: > > > > > > On Sat, 17 Jun 2023 14:40:36 +1000 Liam Ni w= rote: > > > > > > > __nr_to_section() may return a null pointer, > > > > before accessing the member variable section_mem_map, > > > > we should first determine whether it is a null pointer. > > > > > > > > ... > > > > > > > > --- a/mm/sparse.c > > > > +++ b/mm/sparse.c > > > > @@ -258,7 +258,7 @@ static void __init memory_present(int nid, unsi= gned long start, unsigned long en > > > > set_section_nid(section, nid); > > > > > > > > ms =3D __nr_to_section(section); > > > > - if (!ms->section_mem_map) { > > > > + if (ms && !ms->section_mem_map) { > > > > ms->section_mem_map =3D sparse_encode_early_n= id(nid) | > > > > SECTION_IS_ON= LINE; > > > > __section_mark_present(ms, section); > > > > > > I'm suspecting that if __nr_to_section() returns NULL here, we should > > > just panic. But a null-deref gives the same information, so why chan= ge > > > things? > > > > Do you mean if ms is a null pointer=EF=BC=8Cms->section_mem_map will ca= use > > system panic,so we needn't change? > > Yes, if __nr_to_section ever returns NULL the system will crash anyway. I got it,do we need to print some information by panic()? > > -- > Sincerely yours, > Mike.