Re: [PATCH] mm/slub: return 0 when object pointer is NULL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Hyeonggon,

Thanks for replying :)

在 2022/9/12 15:18, Hyeonggon Yoo 写道:
On Mon, Sep 12, 2022 at 01:59:39PM +0800, Ben Luo wrote:
NULL is definitly not a valid address

Signed-off-by: Ben Luo <luoben@xxxxxxxxxxxxxxxxx>
---
  mm/slub.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/slub.c b/mm/slub.c
index 862dbd9..50fad18 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -674,7 +674,7 @@ static inline int check_valid_pointer(struct kmem_cache *s,
  	void *base;
if (!object)
-		return 1;
+		return 0;
base = slab_address(slab);
  	object = kasan_reset_tag(object);
--
1.8.3.1

Hello Ben.

The return value is used to check if the @object has valid pointer
in @slab. (used for debugging) the return value is 0 if valid, 1 if invalid.

It does not return a pointer. So changing it to 0 because 1 is invalid
address does not make sense.

I know the meaning of this return value, but I think this function was expected by returning 0 if invalid ,1 if valid

Check this original code:

        if (object < base || object >= base + slab->objects * s->size ||
                (object - base) % s->size) {
                return 0;
        }

Object not in range of [base, base+length) is an invalid slab address, and it will return 0


--

Thanks,

Ben






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux