OSDN Git Service

bpf: Fix bpf_dynptr_slice{_rdwr} to return NULL instead of 0
authorJoanne Koong <joannelkoong@gmail.com>
Thu, 2 Mar 2023 05:30:14 +0000 (21:30 -0800)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 2 Mar 2023 05:36:29 +0000 (21:36 -0800)
Change bpf_dynptr_slice and bpf_dynptr_slice_rdwr to return NULL instead
of 0, in accordance with the codebase guidelines.

Fixes: 66e3a13e7c2c ("bpf: Add bpf_dynptr_slice and bpf_dynptr_slice_rdwr")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20230302053014.1726219-1-joannelkoong@gmail.com
kernel/bpf/helpers.c

index 58431a9..de9ef84 100644 (file)
@@ -2227,11 +2227,11 @@ __bpf_kfunc void *bpf_dynptr_slice(const struct bpf_dynptr_kern *ptr, u32 offset
        int err;
 
        if (!ptr->data)
-               return 0;
+               return NULL;
 
        err = bpf_dynptr_check_off_len(ptr, offset, len);
        if (err)
-               return 0;
+               return NULL;
 
        type = bpf_dynptr_get_type(ptr);
 
@@ -2252,7 +2252,7 @@ __bpf_kfunc void *bpf_dynptr_slice(const struct bpf_dynptr_kern *ptr, u32 offset
        }
        default:
                WARN_ONCE(true, "unknown dynptr type %d\n", type);
-               return 0;
+               return NULL;
        }
 }
 
@@ -2300,7 +2300,7 @@ __bpf_kfunc void *bpf_dynptr_slice_rdwr(const struct bpf_dynptr_kern *ptr, u32 o
                                        void *buffer, u32 buffer__szk)
 {
        if (!ptr->data || bpf_dynptr_is_rdonly(ptr))
-               return 0;
+               return NULL;
 
        /* bpf_dynptr_slice_rdwr is the same logic as bpf_dynptr_slice.
         *