Thread (47 messages) 47 messages, 9 authors, 2019-03-05

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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help