Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933591Ab3CUOdF (ORCPT ); Thu, 21 Mar 2013 10:33:05 -0400 Received: from relay.parallels.com ([195.214.232.42]:45504 "EHLO relay.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932539Ab3CUOdA (ORCPT ); Thu, 21 Mar 2013 10:33:00 -0400 Date: Thu, 21 Mar 2013 18:31:19 +0400 From: Andrew Vagin To: Thomas Graf CC: Andrey Vagin , , , "David S. Miller" , Eric Dumazet , Pavel Emelyanov , Pablo Neira Ayuso , "Eric W. Biederman" , Gao feng Subject: Re: [PATCH 2/2] netlink: Diag core and basic socket info dumping Message-ID: <20130321143119.GA14763@paralelels.com> References: <1363857669-19990-1-git-send-email-avagin@openvz.org> <1363857669-19990-3-git-send-email-avagin@openvz.org> <20130321125230.GB9046@casper.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Disposition: inline In-Reply-To: <20130321125230.GB9046@casper.infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [10.24.21.86] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1793 Lines: 56 On Thu, Mar 21, 2013 at 12:52:30PM +0000, Thomas Graf wrote: > On 03/21/13 at 01:21pm, Andrey Vagin wrote: > > diff --git a/include/uapi/linux/netlink_diag.h b/include/uapi/linux/netlink_diag.h > > new file mode 100644 > > index 0000000..9328866 > > --- /dev/null > > +++ b/include/uapi/linux/netlink_diag.h > > +enum { > > + NETLINK_DIAG_MEMINFO, > > + NETLINK_DIAG_GROUPS, > > + > > + NETLINK_DIAG_MAX, > > +}; > > Please follow the common pattern and define NETLINK_DIAG_MAX as > NETLINK_DIAG_GROUPS like other by doing> > > [...] > __NETLINK_DIAG_MAX, > }; > > #define NETLINK_DIAG_MAX (__NETLINK_DIAG_MAX - 1) > > Everyone is used to do: > > struct nlattr *attrs[NETLINK_DIAG_MAX+1]; > > nla_parse([...], NETLINK_DIAG_MAX, [...] > Thank you for this issue. I sent the separate patch "[PATCH] net: fix *_DIAG_MAX constants", because currently only INET_DIAG_MAX is correct. > In fact, the follow-up patch to ss is buggy because of this. > UNIX_DIAG_MAX suffers from the same problem which is problem the > cause for this. The code in ss looks like you described: struct rtattr *tb[UNIX_DIAG_MAX+1]; ... parse_rtattr(tb, UNIX_DIAG_MAX, (struct rtattr*)(r+1), nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*r))); struct rtattr *tb[NETLINK_DIAG_MAX+1]; ... parse_rtattr(tb, NETLINK_DIAG_MAX, (struct rtattr*)(r+1), nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*r))) I think I should only update headers... Or I don't understand something. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/