Tony Ambardar
e23bb04b0c
bpf: Fix sysfs export of empty BTF section
...
If BTF data is missing or removed from the ELF section it is still exported
via sysfs as a zero-length file:
root@OpenWrt:/# ls -l /sys/kernel/btf/vmlinux
-r--r--r-- 1 root root 0 Jul 18 02:59 /sys/kernel/btf/vmlinux
Moreover, reads from this file succeed and leak kernel data:
root@OpenWrt:/# hexdump -C /sys/kernel/btf/vmlinux|head -10
000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000cc0 00 00 00 00 00 00 00 00 00 00 00 00 80 83 b0 80 |................|
000cd0 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000ce0 00 00 00 00 00 00 00 00 00 00 00 00 57 ac 6e 9d |............W.n.|
000cf0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
002650 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00 01 |................|
002660 80 82 9a c4 80 85 97 80 81 a9 51 68 00 00 00 02 |..........Qh....|
002670 80 25 44 dc 80 85 97 80 81 a9 50 24 81 ab c4 60 |.%D.......P$...`|
This situation was first observed with kernel 5.4.x, cross-compiled for a
MIPS target system. Fix by adding a sanity-check for export of zero-length
data sections.
Fixes: 341dfcf8d78e ("btf: expose BTF info through sysfs")
Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/b38db205a66238f70823039a8c531535864eaac5.1600417359.git.Tony.Ambardar@gmail.com
2020-09-21 21:50:24 +02:00
..
2020-09-21 21:50:24 +02:00
2020-08-03 11:57:03 -07:00
2020-04-07 10:43:42 -07:00
2020-08-23 17:36:59 -05:00
2020-08-27 09:22:56 +02:00
2020-08-21 16:17:29 +02:00
2020-08-23 17:36:59 -05:00
2020-09-04 09:19:49 -07:00
2020-08-30 12:01:23 -07:00
2020-08-01 09:26:27 +02:00
2020-05-11 00:31:38 +02:00
2020-08-26 12:41:56 +02:00
2020-08-23 17:36:59 -05:00
2020-08-04 22:22:25 -07:00
2020-08-07 11:33:28 -07:00
2020-08-30 11:43:50 -07:00
2020-08-23 17:36:59 -05:00
2020-08-23 17:36:59 -05:00
2020-03-25 11:50:48 +01:00
2020-06-09 09:39:14 -07:00
2020-07-16 12:35:15 -07:00
2020-07-27 23:25:50 +02:00
2020-08-06 19:29:51 -07:00
2020-07-27 23:25:50 +02:00
2020-08-04 14:20:26 -07:00
2020-07-29 10:00:36 -04:00
2020-08-23 17:36:59 -05:00
2020-08-04 14:20:26 -07:00
2020-07-30 11:15:58 -07:00
2020-08-23 17:36:59 -05:00
2020-08-23 17:36:59 -05:00
2020-02-04 03:05:26 +00:00
2020-06-11 15:14:36 +02:00
2020-05-15 11:44:34 -07:00
2020-06-03 13:06:42 -07:00
2020-08-12 10:58:01 -07:00
2020-04-15 11:21:54 +02:00
2020-05-20 14:44:21 -05:00
2020-08-12 10:57:59 -07:00
2020-04-07 10:43:42 -07:00
2020-08-10 19:07:44 -07:00
2020-08-13 21:02:12 +02:00
2020-06-06 23:42:01 +09:00
2020-06-02 10:59:11 -07:00
2020-06-08 11:05:56 -07:00
2020-05-28 10:54:15 +02:00
2020-08-23 17:36:59 -05:00
2020-03-25 10:04:01 -05:00
2020-08-12 10:58:02 -07:00
2020-01-08 16:32:55 +00:00
2020-08-15 10:38:03 -07:00
2020-01-08 16:32:55 +00:00
2020-01-08 16:32:55 +00:00
2020-08-12 10:58:01 -07:00
2020-08-07 18:29:15 -07:00
2020-08-12 10:57:59 -07:00
2020-04-27 02:07:40 -04:00
2020-08-14 19:56:56 -07:00
2020-08-14 11:07:02 -07:00
2020-06-02 10:59:12 -07:00
2020-07-08 11:14:22 +02:00
2020-07-23 17:34:18 +10:00
2020-08-12 10:58:02 -07:00
2020-07-19 20:14:42 +02:00
2020-08-04 15:02:07 -07:00
2020-02-04 03:05:26 +00:00
2020-01-18 13:51:39 +01:00
2020-07-01 12:09:13 +03:00
2020-07-27 14:31:12 -04:00
2020-08-21 09:52:53 -07:00
2020-05-27 11:10:05 +02:00
2019-12-25 10:41:20 +01:00
2020-08-07 11:33:25 -07:00
2020-07-14 16:29:42 -07:00
2020-08-23 17:36:59 -05:00
2020-07-22 10:22:04 +02:00
2020-08-04 13:40:35 -07:00
2020-06-24 07:48:28 -07:00
2020-08-12 10:57:59 -07:00
2020-01-17 10:19:21 +01:00
2020-08-14 19:56:56 -07:00
2020-08-23 17:36:59 -05:00
2020-01-09 16:42:29 -07:00
2020-08-24 21:11:40 -07:00
2020-08-13 09:01:38 -06:00
2020-06-29 12:01:45 -07:00
2019-12-18 18:07:31 +01:00
2020-04-07 21:51:27 +02:00
2020-08-12 10:57:59 -07:00
2020-02-07 15:34:12 +01:00
2020-05-09 13:57:12 +02:00
2020-06-04 19:06:24 -07:00
2020-07-07 11:58:59 -05:00
2020-04-27 02:07:40 -04:00
2020-05-09 13:57:12 +02:00
2020-08-17 09:39:18 -07:00
2020-06-08 11:05:56 -07:00
2020-06-17 10:57:41 -07:00