From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: Re: [PATCH bpf-next v4 03/10] bpf: btf: Check members of struct/union Date: Wed, 18 Apr 2018 10:22:10 -0700 Message-ID: <20180418102210.5fbbb05e@cakuba.netronome.com> References: <20180417204243.4028831-1-kafai@fb.com> <20180417204243.4028831-4-kafai@fb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: , Alexei Starovoitov , Daniel Borkmann , To: Martin KaFai Lau Return-path: Received: from mx4.wp.pl ([212.77.101.12]:5927 "EHLO mx4.wp.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751041AbeDRRWR (ORCPT ); Wed, 18 Apr 2018 13:22:17 -0400 In-Reply-To: <20180417204243.4028831-4-kafai@fb.com> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, 17 Apr 2018 13:42:36 -0700, Martin KaFai Lau wrote: > This patch checks a few things of struct's members: > > 1) It has a valid size (e.g. a "const void" is invalid) > 2) A member's size (+ its member's offset) does not exceed > the containing struct's size. > 3) The member's offset satisfies the alignment requirement Could we also introduce a requirement for members to have different names? Maybe it's there but I missed it. Would BTF with duplicated member names be considered valid? > The above can only be done after the needs_resolve member's type > is resolved. Hence, the above is done together in > btf_struct_resolve(). > > Each possible member's type (e.g. int, enum, modifier...) implements > the check_member() ops which will be called from btf_struct_resolve(). > > Signed-off-by: Martin KaFai Lau > Acked-by: Alexei Starovoitov