diff options
author | Martin KaFai Lau <kafai@fb.com> | 2018-06-02 12:06:50 -0400 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-06-02 14:22:36 -0400 |
commit | b9308ae696b2c35e862636eec631d95ff958c33d (patch) | |
tree | e6ec045510d123dbb9f6e1502e4c5aa809e88f6e /tools | |
parent | b4b21a05b8fe7288087691e993c913a41fd6eb4b (diff) |
bpf: btf: Check array t->size
This patch ensures array's t->size is 0.
The array size is decided by its individual elem's size and the
number of elements. Hence, t->size is not used and
it must be 0.
A test case is added to test_btf.c
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/bpf/test_btf.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/test_btf.c b/tools/testing/selftests/bpf/test_btf.c index 35064df688c1..fd8246e84149 100644 --- a/tools/testing/selftests/bpf/test_btf.c +++ b/tools/testing/selftests/bpf/test_btf.c | |||
@@ -1179,6 +1179,29 @@ static struct btf_raw_test raw_tests[] = { | |||
1179 | }, | 1179 | }, |
1180 | 1180 | ||
1181 | { | 1181 | { |
1182 | .descr = "array test. t->size != 0\"", | ||
1183 | .raw_types = { | ||
1184 | /* int */ /* [1] */ | ||
1185 | BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), | ||
1186 | /* int[16] */ /* [2] */ | ||
1187 | BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_ARRAY, 0, 0), 1), | ||
1188 | BTF_ARRAY_ENC(1, 1, 16), | ||
1189 | BTF_END_RAW, | ||
1190 | }, | ||
1191 | .str_sec = "", | ||
1192 | .str_sec_size = sizeof(""), | ||
1193 | .map_type = BPF_MAP_TYPE_ARRAY, | ||
1194 | .map_name = "array_test_map", | ||
1195 | .key_size = sizeof(int), | ||
1196 | .value_size = sizeof(int), | ||
1197 | .key_type_id = 1, | ||
1198 | .value_type_id = 1, | ||
1199 | .max_entries = 4, | ||
1200 | .btf_load_err = true, | ||
1201 | .err_str = "size != 0", | ||
1202 | }, | ||
1203 | |||
1204 | { | ||
1182 | .descr = "int test. invalid int_data", | 1205 | .descr = "int test. invalid int_data", |
1183 | .raw_types = { | 1206 | .raw_types = { |
1184 | BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_INT, 0, 0), 4), | 1207 | BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_INT, 0, 0), 4), |