[PATCH] include/linux/kasan.h: Notice about 0 for kasan_[dis/en]able_current()

From: chengang
Date: Mon May 02 2016 - 01:52:49 EST


From: Chen Gang <chengang@xxxxxxxxxxxxxxxx>

According to their comments and the kasan_depth's initialization, if
kasan_depth is zero, it means disable. So kasan_depth need consider
about the 0 overflow.

Also remove useless comments for dummy kasan_slab_free().

Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
---
include/linux/kasan.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/kasan.h b/include/linux/kasan.h
index 645c280..37fab04 100644
--- a/include/linux/kasan.h
+++ b/include/linux/kasan.h
@@ -32,13 +32,15 @@ static inline void *kasan_mem_to_shadow(const void *addr)
/* Enable reporting bugs after kasan_disable_current() */
static inline void kasan_enable_current(void)
{
- current->kasan_depth++;
+ if (current->kasan_depth + 1)
+ current->kasan_depth++;
}

/* Disable reporting bugs for current task */
static inline void kasan_disable_current(void)
{
- current->kasan_depth--;
+ if (current->kasan_depth)
+ current->kasan_depth--;
}

void kasan_unpoison_shadow(const void *address, size_t size);
@@ -113,8 +115,6 @@ static inline void kasan_krealloc(const void *object, size_t new_size,

static inline void kasan_slab_alloc(struct kmem_cache *s, void *object,
gfp_t flags) {}
-/* kasan_slab_free() returns true if the object has been put into quarantine.
- */
static inline bool kasan_slab_free(struct kmem_cache *s, void *object)
{
return false;
--
1.9.3