bpf: allow . char as part of the object name
authorDaniel Borkmann <daniel@iogearbox.net>
Tue, 9 Apr 2019 21:20:07 +0000 (23:20 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 10 Apr 2019 00:05:46 +0000 (17:05 -0700)
Trivial addition to allow '.' aside from '_' as "special" characters
in the object name. Used to allow for substrings in maps from loader
side such as ".bss", ".data", ".rodata", but could also be useful for
other purposes.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/syscall.c

index b3ce516e5a20b0e7598d25318bb583709ea83fe3..198c9680bf0d82f7da580adcd0d7988a301f656a 100644 (file)
@@ -474,10 +474,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. */
        while (src < end && *src) {
-               if (!isalnum(*src) && *src != '_')
+               if (!isalnum(*src) &&
+                   *src != '_' && *src != '.')
                        return -EINVAL;
                *dst++ = *src++;
        }