Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1345262imm; Tue, 2 Oct 2018 06:52:14 -0700 (PDT) X-Google-Smtp-Source: ACcGV60RxKh8t4TP0wIRFQ+Bo880pj/yrBLRkzZwYx0CI2YWPzNYcnWnTw0O0E29RAY/N4SBBZSC X-Received: by 2002:a62:1985:: with SMTP id 127-v6mr134784pfz.51.1538488334742; Tue, 02 Oct 2018 06:52:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538488334; cv=none; d=google.com; s=arc-20160816; b=xJ+SMpfWD6s/ezjl0/YTmSbRz9oPxAJiUxhOIkLEjKFanWEAsV34sdjQvuReFSDVim 6734T/A4bZnlTqvOHwr1QNGJhW6xVEb3XJAjbdGXfTN+/WtN7fNH0HKr+eM3yXaEzaj9 UEkXwV5ai2lpxng2xw1bkYjqEl6vk0rf0rqystzTzBDd5y3nrEttXy9LRRkfvrEh8S0q T7O2RNSj8uVsF3xVCyjQitFWFRjsIXD5/7+Wg9VFM5arsSOQ27RY4KpRbrrci2b2Ghn9 jmkfdVc3PoQJf2L5QP8KWGHUiJC4oxBHY3jmNh5zhan+Qq/GdgQm8jukeecvt7ovPVBz riJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=ucjz5OhTrXkuwKvQRAETR3tQ8PXfgV2qhE4W547vm0I=; b=YEldXrb6L0bd2lmHD+fFCR16E5CRsABEEYvACOSwas+j/JKoBHCUQHL6aPaaSx27+Z 9mPqJTHL7Itkize2NQP4vmUMv574v4efYcg0ejiGp3Tkv0rEy/HxlHFBg852vq7gTKgn x0FzWU4J+hbPOuQ3mDq3//U2kezhnIehcoPTLomDix5tLODP5bAoXqPhh7CaV3rDUG3V 9SA1XANu4aC1H/QhC0/GDauhdhkxx8hKXgujPaUVSUFTFzPxDMJvG83zfQrZG3QN0051 2V+jI4ysYqGrRWHKuukf51p+x4b78Mx1FfKOHUHXCvl29EyqvgqyjJTDZl73cRCdw4Qh 5Kfw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w7-v6si14890493pgh.131.2018.10.02.06.52.00; Tue, 02 Oct 2018 06:52:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731891AbeJBUQ7 (ORCPT + 99 others); Tue, 2 Oct 2018 16:16:59 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:34954 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731866AbeJBUQ6 (ORCPT ); Tue, 2 Oct 2018 16:16:58 -0400 Received: from localhost (24-104-73-23-ip-static.hfc.comcastbusiness.net [24.104.73.23]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id A8AAEB2F; Tue, 2 Oct 2018 13:33:34 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Josh Poimboeuf , Jessica Yu , Sasha Levin Subject: [PATCH 4.14 075/137] module: exclude SHN_UNDEF symbols from kallsyms api Date: Tue, 2 Oct 2018 06:24:36 -0700 Message-Id: <20181002132503.810835419@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181002132458.446916963@linuxfoundation.org> References: <20181002132458.446916963@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Jessica Yu [ Upstream commit 9f2d1e68cf4d641def734adaccfc3823d3575e6c ] Livepatch modules are special in that we preserve their entire symbol tables in order to be able to apply relocations after module load. The unwanted side effect of this is that undefined (SHN_UNDEF) symbols of livepatch modules are accessible via the kallsyms api and this can confuse symbol resolution in livepatch (klp_find_object_symbol()) and cause subtle bugs in livepatch. Have the module kallsyms api skip over SHN_UNDEF symbols. These symbols are usually not available for normal modules anyway as we cut down their symbol tables to just the core (non-undefined) symbols, so this should really just affect livepatch modules. Note that this patch doesn't affect the display of undefined symbols in /proc/kallsyms. Reported-by: Josh Poimboeuf Tested-by: Josh Poimboeuf Reviewed-by: Josh Poimboeuf Signed-off-by: Jessica Yu Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- kernel/module.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) --- a/kernel/module.c +++ b/kernel/module.c @@ -4058,7 +4058,7 @@ static unsigned long mod_find_symname(st for (i = 0; i < kallsyms->num_symtab; i++) if (strcmp(name, symname(kallsyms, i)) == 0 && - kallsyms->symtab[i].st_info != 'U') + kallsyms->symtab[i].st_shndx != SHN_UNDEF) return kallsyms->symtab[i].st_value; return 0; } @@ -4104,6 +4104,10 @@ int module_kallsyms_on_each_symbol(int ( if (mod->state == MODULE_STATE_UNFORMED) continue; for (i = 0; i < kallsyms->num_symtab; i++) { + + if (kallsyms->symtab[i].st_shndx == SHN_UNDEF) + continue; + ret = fn(data, symname(kallsyms, i), mod, kallsyms->symtab[i].st_value); if (ret != 0)