From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Ahern Subject: Re: [PATCH net-next 0/7] rtnetlink: add RTM_GETADDR2 Date: Thu, 27 Sep 2018 14:24:36 -0600 Message-ID: References: <20180927175857.3511-1-christian@brauner.io> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit To: Christian Brauner , jbenc@redhat.com, davem@davemloft.net, stephen@networkplumber.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Return-path: In-Reply-To: <20180927175857.3511-1-christian@brauner.io> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On 9/27/18 11:58 AM, Christian Brauner wrote: > Various userspace programs (e.g. iproute2) have sent RTM_GETADDR > requests with struct ifinfomsg. This is wrong and should have been > struct ifaddrmsg all along as mandated by the manpages. However, dump > requests so far didn't parse the netlink message that was sent and > succeeded even when a wrong struct was passed along. ... > The correct solution at this point seems to me to introduce a new > RTM_GETADDR2 request. This way we can parse the message and fail hard if > the struct is not struct ifaddrmsg and can safely extend it in the > future. Userspace tools that rely on the buggy RTM_GETADDR API will > still keep working without even having to see any log messages and new > userspace tools that want to make user of new features can make use of > the new RTM_GETADDR2 requests. First, I think this is the wrong precedent when all we need is a single bit flag that userspace can use to tell the kernel "I have a clue and I am passing in the proper header for this dump request". Second, you are not addressing the problems of the past by requiring the proper header and checking values passed in it. I have another idea. I'll send an RFC patch soon.