Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp610627img; Fri, 22 Mar 2019 05:07:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqz2oeyF+VlSk7AIAJju1Y03UF3uoBI6K3P+vQciI2LOOS+CAeX0ei9SlHTZeB13JKciORtL X-Received: by 2002:a17:902:28e6:: with SMTP id f93mr9211573plb.264.1553256452877; Fri, 22 Mar 2019 05:07:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553256452; cv=none; d=google.com; s=arc-20160816; b=IkwJRTYdzG8pGtPpQ74up4nr416SSNrrZ6qfccRF+jlXnnDaHpBVnhuMevuS8g425t OI4d9UdYXclPdAolnGVvBmdJTqE5WPjmzJPCM243+Qr8s25GPBt0KJRlegQA8bGAIxnV /DgQUWaHlQdkzzYxHf+3HxzSDm9w/OpTJKTU2P5QQ1NR9JoEBVtsKu+aJNcWkwscnXsI flw8e1v7jyf5wKXiQ7cv/+Qp6nu/7W0OlIBAIXhjXjQ0OuGGD5sDqFWw/Jw7On52nXW4 rgCmz4U1nd1w2PvCJoS02SYKUeVuevwJlDbnXexIfB80Zxv7IXNRssRyDvT8zY5cEKOM chEQ== 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:dkim-signature; bh=UqLlGu8FLgNisHkhT/W3Uf9yolvSCNhIRFBYfZazBkM=; b=jvow6qTIi4UKJF2Y8VtYdY6LKxMji+2Ox1Bl3H9jTB+u6AiVdATN8dpKCGJuMb+bDM YU2wFN7tk+SpG/WvnS1z9ZMeIcLunsAOJfvRwNgBZVEZeHf0WdBWR+YQVk6Fx0PhdGo0 2pPRzJKomJYLC+BXiUKc12E6re0lVPSp0M9qzi/Uu9A4mYCihBmEI9Qar6l70nA60cfJ lMOkE0MRjA/mrZlN1OsGrfKcFcZXlCkWvdgZQnR2pGNkoYDODFVymkKpP5lMQEvc28m3 fw4oGRzKFzi7x9rJwq5gIQq/eILJ7fFv43r8aUNI9198mtnmHqcA7l+ax99qCbW/JtQR k00Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=k8NFNIWF; 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 h69si6692982pfc.120.2019.03.22.05.07.17; Fri, 22 Mar 2019 05:07:32 -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; dkim=pass header.i=@kernel.org header.s=default header.b=k8NFNIWF; 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 S2388722AbfCVMEv (ORCPT + 99 others); Fri, 22 Mar 2019 08:04:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:43230 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733252AbfCVMEt (ORCPT ); Fri, 22 Mar 2019 08:04:49 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 86757206C0; Fri, 22 Mar 2019 12:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553256289; bh=RgMJnDERoQkrmyDxnu9lN5+W5E0bHSSz56wUoDZ245k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k8NFNIWFyrWzAvUp29mQm+iCiEr4ZodO+1skpN86Qqs0T6u50QIxebbaLYGwXckQg oE+FPHjaaE9AmteYLvbaAPWh6e8he9aZnQe/JDCnj72Z810mSXLzcdvk1MPMV7CcIZ 89FOv3A03Ev2NOk/gIZuz4Z9c7J/PsApJWapmPOU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ingo Molnar , Masami Hiramatsu , Song Liu , Jann Horn , "Steven Rostedt (VMware)" Subject: [PATCH 4.19 142/280] tracing/perf: Use strndup_user() instead of buggy open-coded version Date: Fri, 22 Mar 2019 12:14:55 +0100 Message-Id: <20190322111318.570881793@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190322111306.356185024@linuxfoundation.org> References: <20190322111306.356185024@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Jann Horn commit 83540fbc8812a580b6ad8f93f4c29e62e417687e upstream. The first version of this method was missing the check for `ret == PATH_MAX`; then such a check was added, but it didn't call kfree() on error, so there was still a small memory leak in the error case. Fix it by using strndup_user() instead of open-coding it. Link: http://lkml.kernel.org/r/20190220165443.152385-1-jannh@google.com Cc: Ingo Molnar Cc: stable@vger.kernel.org Fixes: 0eadcc7a7bc0 ("perf/core: Fix perf_uprobe_init()") Reviewed-by: Masami Hiramatsu Acked-by: Song Liu Signed-off-by: Jann Horn Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Greg Kroah-Hartman --- kernel/trace/trace_event_perf.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) --- a/kernel/trace/trace_event_perf.c +++ b/kernel/trace/trace_event_perf.c @@ -298,15 +298,13 @@ int perf_uprobe_init(struct perf_event * if (!p_event->attr.uprobe_path) return -EINVAL; - path = kzalloc(PATH_MAX, GFP_KERNEL); - if (!path) - return -ENOMEM; - ret = strncpy_from_user( - path, u64_to_user_ptr(p_event->attr.uprobe_path), PATH_MAX); - if (ret == PATH_MAX) - return -E2BIG; - if (ret < 0) - goto out; + + path = strndup_user(u64_to_user_ptr(p_event->attr.uprobe_path), + PATH_MAX); + if (IS_ERR(path)) { + ret = PTR_ERR(path); + return (ret == -EINVAL) ? -E2BIG : ret; + } if (path[0] == '\0') { ret = -EINVAL; goto out;