Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1651987ybt; Thu, 9 Jul 2020 11:59:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLD9EF6URJ40stBmkLWI9gq6iarPs5ueviJKqpg4Dyuh4BkmDd1SOS3sNlUCFguI5JzCao X-Received: by 2002:a50:cf43:: with SMTP id d3mr77011303edk.40.1594321193528; Thu, 09 Jul 2020 11:59:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594321193; cv=none; d=google.com; s=arc-20160816; b=H98PCNz+u4GCWE4To2F0G3CdR520lBv4JNy3YylBIPkcB+BialR7D4/gIcwYHU6H9A ma0X/62n5q6PEUmwJTGu8oS0fcpd5tHByQgjlxBgnrCiYY1BGT7EW3TiSbmHDPPTbsWl MqWgfln6p1x0ulASzOqtifSh+NWWlc/xUAMk+6bHP/A08uRPLMwfd9y5hBvN8+fMyBfR aT2sxjQj7rGnH5uqpLxKxviPfwqVLtrzsPqcLvVwMCnFeYikdTWc0BRcM3XBZC9pOAwF /rj827zCk2KgTRGWYXTkJQffcj84RCp4npQr2cJ4disSONKsJF7Sf6kFYeVlYTd+ZXep Z69w== 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:subject:cc:to:from:date :dkim-signature; bh=W6N3HJtA3pv1Vh2kd4CX9DBKyLADTZUkk2VopcWre8A=; b=k1c1xQvIACiz8/Pag9beNM9hudpDSaZYqM2x3OrZUbAQeENapmn7wHjDEbXTyKrxyS X9E46O8J1iO3PaFvXMcefTjCac4Eyco/NWK1FDgRCitkH42IZxF2gMZVQiEBhnUb8Hr1 JdRMYqKJYwnad5VvyOmYYJlX7dKcuIWqPCmQQyR2SeI+ck01Ng1Be13U0HkCypUw0Xmb /uRSV0omEaSXvbyMCmljzM7MMATW+34FmV6UCzgH1rQWZ92zT9IX9Sl2VAt96DyxJPP9 vxYood6NoXBELQz27gaUVASxCRtYEAcDEjsMlLY+ruTXl7W5a9rAnkVWYw56qigOQNFH k7kA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1RmEnt+m; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lz15si2349861ejb.406.2020.07.09.11.59.30; Thu, 09 Jul 2020 11:59:53 -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; dkim=pass header.i=@kernel.org header.s=default header.b=1RmEnt+m; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726510AbgGIS5X (ORCPT + 99 others); Thu, 9 Jul 2020 14:57:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:44684 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726116AbgGIS5X (ORCPT ); Thu, 9 Jul 2020 14:57:23 -0400 Received: from kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com (unknown [163.114.132.1]) (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 A941420774; Thu, 9 Jul 2020 18:57:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1594321042; bh=QyLYktjnNd9/FkmcnpURY2O8rFyOTw3Fkut2coF5viI=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=1RmEnt+muvngIaqPPcqDjUjYsJwuxJghqrbEHp4cPIOi6qIJV/W0HCJFvhep/e0Nc l7aZJ6lYdN2+Dym+AJW5yOl5A3bvc4IdrvVRDr71eWK1ZT+5sVdhojckboesDuyfqT yGyXhVXVJU/QIImefvrKij6UrJ3DbpSan/vPICB8= Date: Thu, 9 Jul 2020 11:57:21 -0700 From: Jakub Kicinski To: Michal Kubecek Cc: "David S. Miller" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net] ethtool: fix genlmsg_put() failure handling in ethnl_default_dumpit() Message-ID: <20200709115721.492dcf76@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <20200709101150.65DBB60567@lion.mk-sys.cz> References: <20200709101150.65DBB60567@lion.mk-sys.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 9 Jul 2020 12:11:50 +0200 (CEST) Michal Kubecek wrote: > If the genlmsg_put() call in ethnl_default_dumpit() fails, we bail out > without checking if we already have some messages in current skb like we do > with ethnl_default_dump_one() failure later. Therefore if existing messages > almost fill up the buffer so that there is not enough space even for > netlink and genetlink header, we lose all prepared messages and return and > error. > > Rather than duplicating the skb->len check, move the genlmsg_put(), > genlmsg_cancel() and genlmsg_end() calls into ethnl_default_dump_one(). > This is also more logical as all message composition will be in > ethnl_default_dump_one() and only iteration logic will be left in > ethnl_default_dumpit(). > > Fixes: 728480f12442 ("ethtool: default handlers for GET requests") > Reported-by: Jakub Kicinski > Signed-off-by: Michal Kubecek Reviewed-by: Jakub Kicinski