Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp3831354ybf; Tue, 3 Mar 2020 13:45:36 -0800 (PST) X-Google-Smtp-Source: ADFU+vtrJ0LMC4dWvMXDxR9hSiypTgSepHIkf3Ir8jtfj5P0w41uDgQ9jAfp7brw9CCGuDqOh1b8 X-Received: by 2002:a9d:6b87:: with SMTP id b7mr1464615otq.248.1583271936683; Tue, 03 Mar 2020 13:45:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583271936; cv=none; d=google.com; s=arc-20160816; b=LYAxehxtA+6JLwZBLNKXr4elV8zrud/nIKvNhOfu/AtJeA9K7pEmCWGxVZTT03xgVu 3uM+sr9it7KZ2+pyR9OoOGTxj0HpHe04J5othAb6XqjUptibBv184DIZkOxaMZHXztV9 lUvFghXKdtCmcJQBXzZ1GMrU0URg3UPuTUCxH/51UAWWg0zgzdxbDAz+6qYQc+8zO44D YEQJSvgz/5ocfB+7mQCUuOeG+nCDY7qqERAdyFylixm1JoeIBZEiIkGCjnU6XATbVTZp ax+V40Y0Zyy05oRPKZNdvLbxfudbzqGMS7auQsCVJU7Hf5b4hXgwaezbVvLCd95cVFY3 9DzA== 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 :dkim-signature; bh=NmhcQqjDBbz2xD66LWnRv2HepEAGH6Qi/I5z9EnPFz0=; b=ldCa9qcJmLArJDQ9nlIHCBpvOAmGyWl+vZGkoNNiyRdENZ4yPBvi+z9dEBmTqfhpSm iyetdFcLVZxNoRzEiksccvsHtMGUwoW/78BtdwbmcuAO2nz/Y3scRMh36a1dKGnV1ay8 9XoiVdJoEIQvLHAHglStBe4FW57uuill0+YXHKtmCaIJYIkYgHghg7/xe2h33V87+PIa ZXIX9d6WSo4vB8pxYw5+uWWLyt8pVK/leAMJMEaAGic25Mx3Eq5LuWhB/JtuKw05BzTp Bf1YW+qY3S5uyAa99yoLS9xmG3rf8oDeJHO+WB+A6I+T7yJ0X7J4/O/Pf7F10hmQir+E 5G1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PP7aIFSX; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k8si8225294otp.69.2020.03.03.13.45.24; Tue, 03 Mar 2020 13:45:36 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=PP7aIFSX; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731330AbgCCTsl (ORCPT + 99 others); Tue, 3 Mar 2020 14:48:41 -0500 Received: from mail.kernel.org ([198.145.29.99]:57814 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729609AbgCCTsk (ORCPT ); Tue, 3 Mar 2020 14:48:40 -0500 Received: from quaco.ghostprotocols.net (unknown [179.97.37.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A052B208C3; Tue, 3 Mar 2020 19:48:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583264920; bh=3fdeTMTVLyvy2AI3VyujYmwAndWHM4zwmv0d3on0KZ0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PP7aIFSX20lnS9RbHKgq6WeZEQb2H/N7JXsaKm1j5+gCRKx03iJLb4b+FUyhDjDo5 T/WXFZppvN5GDqCXniEtRv8afpehywV3KF7xztl2T2vYCZUd55pQB+fCYimwVydVhP 0m1qKiLDFYY0bwyx3T0xbGVR1Tsi+yGgl67ultZw= From: Arnaldo Carvalho de Melo To: Ingo Molnar , Thomas Gleixner Cc: Jiri Olsa , Namhyung Kim , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter Subject: [PATCH 2/5] perf env: Do not return pointers to local variables Date: Tue, 3 Mar 2020 16:48:24 -0300 Message-Id: <20200303194827.6461-3-acme@kernel.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200303194827.6461-1-acme@kernel.org> References: <20200303194827.6461-1-acme@kernel.org> 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 From: Arnaldo Carvalho de Melo It is possible to return a pointer to a local variable when looking up the architecture name for the running system and no normalization is done on that value, i.e. we may end up returning the uts.machine local variable. While this doesn't happen on most arches, as normalization takes place, lets fix this by making that a static variable and optimize it a bit by not always running uname(), only the first time. Noticed in fedora rawhide running with: [perfbuilder@a5ff49d6e6e4 ~]$ gcc --version gcc (GCC) 10.0.1 20200216 (Red Hat 10.0.1-0.8) Reported-by: Jiri Olsa Cc: Adrian Hunter Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/env.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/env.c b/tools/perf/util/env.c index 6242a9215df7..4154f944f474 100644 --- a/tools/perf/util/env.c +++ b/tools/perf/util/env.c @@ -343,11 +343,11 @@ static const char *normalize_arch(char *arch) const char *perf_env__arch(struct perf_env *env) { - struct utsname uts; char *arch_name; if (!env || !env->arch) { /* Assume local operation */ - if (uname(&uts) < 0) + static struct utsname uts = { .machine[0] = '\0', }; + if (uts.machine[0] == '\0' && uname(&uts) < 0) return NULL; arch_name = uts.machine; } else -- 2.21.1