From nobody Thu May 2 17:29:03 2024 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6148C6FD1C for ; Fri, 24 Mar 2023 02:54:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229849AbjCXCyT (ORCPT ); Thu, 23 Mar 2023 22:54:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229508AbjCXCyR (ORCPT ); Thu, 23 Mar 2023 22:54:17 -0400 Received: from mail.nfschina.com (unknown [42.101.60.237]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91BB293E3 for ; Thu, 23 Mar 2023 19:54:12 -0700 (PDT) Received: from localhost (unknown [127.0.0.1]) by mail.nfschina.com (Postfix) with ESMTP id 86E3C1A00888; Fri, 24 Mar 2023 10:54:16 +0800 (CST) X-Virus-Scanned: amavisd-new at nfschina.com Received: from mail.nfschina.com ([127.0.0.1]) by localhost (localhost.localdomain [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gD0FfV6nSDOI; Fri, 24 Mar 2023 10:54:15 +0800 (CST) Received: from localhost.localdomain (unknown [219.141.250.2]) (Authenticated sender: kunyu@nfschina.com) by mail.nfschina.com (Postfix) with ESMTPA id 96B141A00815; Fri, 24 Mar 2023 10:54:15 +0800 (CST) From: Li kunyu To: richard.henderson@linaro.org, ink@jurassic.park.msu.ru, mattst88@gmail.com, aurxenon@lunos.org Cc: linux-kernel@vger.kernel.org, Li kunyu Subject: [PATCH] alpha: kernel: module: Adding branch statements after allocating memory for kmalloc Date: Sun, 26 Mar 2023 03:25:30 +0800 Message-Id: <20230325192530.3298-1-kunyu@nfschina.com> X-Mailer: git-send-email 2.18.2 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" After looking at the process_reloc_for_got function and where it is called, I decided to use a branch statement to increase the robustness of the pointer g. If pointer g allocation fails, when 'chains [i]. next' is executed, it can avoid crashes caused by wild pointers. Signed-off-by: Li kunyu --- arch/alpha/kernel/module.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c index cbefa5a77384..8c97f10347a7 100644 --- a/arch/alpha/kernel/module.c +++ b/arch/alpha/kernel/module.c @@ -47,11 +47,15 @@ process_reloc_for_got(Elf64_Rela *rela, } =20 g =3D kmalloc (sizeof (*g), GFP_KERNEL); - g->next =3D chains[r_sym].next; - g->r_addend =3D r_addend; - g->got_offset =3D *poffset; - *poffset +=3D 8; - chains[r_sym].next =3D g; + if (g) { + g->next =3D chains[r_sym].next; + g->r_addend =3D r_addend; + g->got_offset =3D *poffset; + *poffset +=3D 8; + chains[r_sym].next =3D g; + } + else + chains[r_sym].next =3D NULL; =20 found_entry: /* Trick: most of the ELF64_R_TYPE field is unused. There are --=20 2.18.2