Re: [PATCH bpf-next v2 3/7] bpf, obj: allow . char as part of the name
From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2019-03-01 09:04:58
Also in:
bpf
On 03/01/2019 06:52 AM, Andrii Nakryiko wrote:
On Thu, Feb 28, 2019 at 3:31 PM Daniel Borkmann [off-list ref] wrote:quoted
Trivial addition to allow '.' aside from '_' as "special" characters in the object name. Used to name maps from loader side as ".bss", ".data", ".rodata". Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>Acked-by: Andrii Nakryiko <redacted>quoted
kernel/bpf/syscall.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index d3ef45e01d7a..90044da3346e 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c@@ -440,10 +440,10 @@ static int bpf_obj_name_cpy(char *dst, const char *src) const char *end = src + BPF_OBJ_NAME_LEN; memset(dst, 0, BPF_OBJ_NAME_LEN); - - /* Copy all isalnum() and '_' char */ + /* Copy all isalnum(), '_' and '.' chars. */Is there any reason names are so restrictive? Say, why not '-' as well? It's perfectly safe even in filenames. Or even '/' and '\'? Is this name used by anything else in the system, except for introspection?
Could be done, presumably it was more restrictive in case one might need some reserved names in unforeseeable future, but looks so far noone run into the need to extend it further than this. :)
quoted
while (src < end && *src) { - if (!isalnum(*src) && *src != '_') + if (!isalnum(*src) && + *src != '_' && *src != '.') return -EINVAL; *dst++ = *src++; } -- 2.17.1