From 94e4809c852d576ab9cef2fb4853c78e62b6712a Mon Sep 17 00:00:00 2001 From: hemist Date: Wed, 16 Aug 2023 11:20:49 +0800 Subject: [PATCH 1/2] fix: memleak can be executed normaly even when the previous command terminates abnormally --- modules/memleak/memleak.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/memleak/memleak.c b/modules/memleak/memleak.c index 660da77..d693b59 100755 --- a/modules/memleak/memleak.c +++ b/modules/memleak/memleak.c @@ -636,7 +636,8 @@ int memleak_handler_cmd(int cmd, unsigned long arg) htab = tab; if (htab->state != MEMLEAK_STATE_OFF && - (cmd == MEMLEAK_CMD_RESULT || cmd == MEMLEAK_CMD_ENALBE)) { + (cmd == MEMLEAK_CMD_RESULT || cmd == MEMLEAK_CMD_ENALBE) && + memleak_ref == 0) { pr_info("htab busy wait\n"); return -EAGAIN; } -- Gitee From a417721e2331d7e012e3c09ec4f7f8d9f3bb6e32 Mon Sep 17 00:00:00 2001 From: hemist Date: Wed, 16 Aug 2023 13:54:55 +0800 Subject: [PATCH 2/2] fix: The system will crash down when memleak kmalloc-4096 is executed --- modules/memleak/objects.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/memleak/objects.c b/modules/memleak/objects.c index 13b0fef..fda21b6 100644 --- a/modules/memleak/objects.c +++ b/modules/memleak/objects.c @@ -43,6 +43,8 @@ static int compare_one_object(struct object *object, unsigned char *dst, int siz int i ; int valid_num = 0; unsigned char *src = (unsigned char *)object->ptr; + + if (dst == NULL || src == NULL) return 0; for (i = 0; i < size; i++) { @@ -85,7 +87,7 @@ static int find_similar_object(struct object_info *info, struct object *object, valid++; } - if (valid > max) { + if (valid >= max) { max = valid; *object = tmp; object->valid_object = max; -- Gitee