Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3776073ybt; Tue, 23 Jun 2020 10:25:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtXMaPO/jgN0+FEacQTsATy1d09KGyiHx8T6Qr/ZuNC+zmEMcyF5QFDxlLDQ2SXy44ogr3 X-Received: by 2002:a05:6402:22b0:: with SMTP id cx16mr15782700edb.48.1592933120132; Tue, 23 Jun 2020 10:25:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592933120; cv=none; d=google.com; s=arc-20160816; b=KCTkfQyFziJLy8Y4dBpCKvdHuZO+BMtWWEYANuryX2jw1qemx5dYS3stDbWoAy6GQa AaVLsriUL9xp6TLPr96G39ZaY06UGB1H23WbIG92yiQV62lwRtzMcdiUQyhPLjKo7LXa Q0F8ZIZ148QOj4Ye7bx2s7fynhnqWmNxkdrATZI+o4voQtivHi/dazg7ZjcUiBNCHfYc Q2FW9zx5AHzuAMztshl1wN2lobExccgAOAXWL3wbV9F82WewsXnDbZuy2XofuSUFI6p4 kzrYG12ImUukRC2hFpD3uUmi2a32D+ph8DNhEAJl2Ds9WoadQAOISHPsp4Y53Er03RvI jA5g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=XX/kua6SIRhzBC74XZ4VnC8/Myi6/zerKLiksTTBqTM=; b=O8Vsy104XWhJYZODYRRVylB3CQ3jz1RyTbHb6fAN+ufFaa5ZBSG0uq8EjzJunlMrXM PZXnjSPk1w32DD8m4O2p+Qu5Jxr0rIYhXvlZd3NjgcbBE5FptaQAuxjpIMz5BmS0lB9K wzxYLCB70B9vXKZc7cItbMjaxD1vWUWkuI3/SKu9zuS8k3aQ71VAYLc4WcHLTEMMYzlP ExcQlO6tJft3n8JzU2zFQbqt2IzcPpvj6LCB3zt9Y1lZOMznTnz5AChnHdEgBMMBA+Kd Oe1UNETkW5Wx26b+FpQwOn5pFkqiuf/bt62OAHopQjyFCPvffK0EFg3ADflbXRwdoeNS bJeA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p26si12422534edx.191.2020.06.23.10.24.32; Tue, 23 Jun 2020 10:25:20 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733013AbgFWRYZ (ORCPT + 99 others); Tue, 23 Jun 2020 13:24:25 -0400 Received: from mga11.intel.com ([192.55.52.93]:61940 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732565AbgFWRYX (ORCPT ); Tue, 23 Jun 2020 13:24:23 -0400 IronPort-SDR: iJc7Hsw5pPQnra1DfEGgjxtGrvc7iFXByZLoVLN3SnuR0mSrasxHqZjmMG74OFQz4ZmixeVgn4 DjaK3VDV14mA== X-IronPort-AV: E=McAfee;i="6000,8403,9661"; a="142391459" X-IronPort-AV: E=Sophos;i="5.75,272,1589266800"; d="scan'208";a="142391459" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jun 2020 10:24:22 -0700 IronPort-SDR: JndrGx72DcHh023YhvHtJsYj9b/pnCDv5I0kFROXSqCIXpHRfj6GkaxpyQhWvirWfHZiJbcJq0 UPbKLAoeaQcQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,272,1589266800"; d="scan'208";a="423080024" Received: from kcaccard-mobl.amr.corp.intel.com (HELO kcaccard-mobl1.jf.intel.com) ([10.213.182.184]) by orsmga004.jf.intel.com with ESMTP; 23 Jun 2020 10:24:20 -0700 From: Kristen Carlson Accardi To: keescook@chromium.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, Josh Poimboeuf , Peter Zijlstra Cc: arjan@linux.intel.com, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, rick.p.edgecombe@intel.com, Kristen Carlson Accardi Subject: [PATCH v3 01/10] objtool: Do not assume order of parent/child functions Date: Tue, 23 Jun 2020 10:23:18 -0700 Message-Id: <20200623172327.5701-2-kristen@linux.intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623172327.5701-1-kristen@linux.intel.com> References: <20200623172327.5701-1-kristen@linux.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If a .cold function is examined prior to it's parent, the link to the parent/child function can be overwritten when the parent is examined. Only update pfunc and cfunc if they were previously nil to prevent this from happening. Signed-off-by: Kristen Carlson Accardi Acked-by: Josh Poimboeuf --- tools/objtool/elf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c index 84225679f96d..f953d3a15612 100644 --- a/tools/objtool/elf.c +++ b/tools/objtool/elf.c @@ -434,7 +434,13 @@ static int read_symbols(struct elf *elf) size_t pnamelen; if (sym->type != STT_FUNC) continue; - sym->pfunc = sym->cfunc = sym; + + if (sym->pfunc == NULL) + sym->pfunc = sym; + + if (sym->cfunc == NULL) + sym->cfunc = sym; + coldstr = strstr(sym->name, ".cold"); if (!coldstr) continue; -- 2.20.1