Messages in this thread | | | Date | Mon, 25 Jan 2016 10:04:18 +0800 | From | "Wangnan (F)" <> | Subject | Re: [PATCH 2/2] perf bpf: Check relocation target section |
| |
On 2016/1/25 9:56, Wangnan (F) wrote: > > > On 2016/1/23 1:11, Alexei Starovoitov wrote: >> On Fri, Jan 22, 2016 at 09:27:21AM +0000, Wang Nan wrote: >>> Libbpf should check target section before doing relocation to ensure >>> the relocation is correct. If not, a bug in LLVM causes error. See [1]. >>> Also, if an incorrect BPF script uses both global variable and >>> map, global variable whould be treated as map and be relocated >>> without error. >>> >>> This patch saves id of map section into obj->efile and compare >>> target section of a relocation symbol against it during relocation. >> ... >>> [1] https://llvm.org/bugs/show_bug.cgi?id=26243 >> ... >>> Signed-off-by: Wang Nan <wangnan0@huawei.com> >>> + if (sym.st_shndx != maps_shndx) { >>> + pr_warning("Program '%s' contains non-map related relo >>> data pointing to section %u\n", >>> + prog->section_name, sym.st_shndx); >>> + return -LIBBPF_ERRNO__RELOC;
There's a trailing whitespace. Sorry.
>>> + } >> May be 'pr_err' instead of 'pr_warning', since such program will fail >> to load by kernel anyway. > > Libbpf doesn't issue pr_error even in fatal exception because it > doesn't define > pr_err at all. It reports error code and let perf deal with error. > > Thank you. > >> Looks good otherwise. >> Acked-by: Alexei Starovoitov <ast@kernel.org> >> >
| |