Messages in this thread | | | Date | Thu, 28 May 2015 11:34:37 +0800 | From | "Wangnan (F)" <> | Subject | Re: [RFC PATCH v4 09/29] bpf tools: Collect version and license from ELF sections |
| |
On 2015/5/28 9:48, Alexei Starovoitov wrote: > On Wed, May 27, 2015 at 05:19:44AM +0000, Wang Nan wrote: >> Expand bpf_obj_elf_collect() to collect license and kernel version >> information in eBPF object file. eBPF object file should have a section >> named 'license', which contains a string. It should also have a section >> named 'version', contains a u32 LINUX_VERSION_CODE. >> >> bpf_obj_validate() is introduced to validate object file after loaded. >> Currently it only check existance of 'version' section. >> >> Signed-off-by: Wang Nan <wangnan0@huawei.com> >> --- > ... >> +static int >> +bpf_object__init_kversion(struct bpf_object *obj, >> + void *data, size_t size) >> +{ >> + u32 kver; >> + if (size < sizeof(kver)) { > shouldn't it be '!=' ?
Is it possible that LLVM pads 'version' section so the size of it becomes longer than sizeof(u32)?
Thank you.
>> + pr_warning("invalid kver section in %s\n", obj->path); >> + return -EINVAL; >> + } >> + memcpy(&kver, data, sizeof(kver)); >> + obj->kern_version = kver; >> + pr_debug("kernel version of %s is %x\n", obj->path, >> + obj->kern_version); >> + return 0; >> +} >> +
| |