Re: [linux-next:master 2908/3314] lib/stackdepot.c:544 stack_print() warn: unsigned 'stack->size' is never less than zero.

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

 



On Thu, 18 May 2023 23:44:10 +0800 kernel test robot <lkp@xxxxxxxxx> wrote:

> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   798d276b39e984345d52b933a900a71fa0815928
> commit: e435b85a4aea7a82259105d5d8025655460052e1 [2908/3314] mm, page_owner: add page_owner_stacks file to print out only stacks and their counte
> config: x86_64-randconfig-m001
> compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
> 
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202305182345.LTMlWG84-lkp@xxxxxxxxx/
> 
> smatch warnings:
> lib/stackdepot.c:544 stack_print() warn: unsigned 'stack->size' is never less than zero.
> 

Linus would complain about that warning.

> 
>    537	
>    538	int stack_print(struct seq_file *m, void *v)
>    539	{
>    540		char *buf;
>    541		int ret = 0;
>    542		struct stack_record *stack = v;
>    543	
>  > 544		if (!stack->size || stack->size < 0 ||
>    545		    stack->size > PAGE_SIZE || stack->handle.valid != 1 ||
>    546		    refcount_read(&stack->count) < 1)

How about <=?

--- a/lib/stackdepot.c~mm-page_owner-add-page_owner_stacks-file-to-print-out-only-stacks-and-their-counte-fix-fix
+++ a/lib/stackdepot.c
@@ -541,9 +541,8 @@ int stack_print(struct seq_file *m, void
 	int ret = 0;
 	struct stack_record *stack = v;
 
-	if (!stack->size || stack->size < 0 ||
-	    stack->size > PAGE_SIZE || stack->handle.valid != 1 ||
-	    refcount_read(&stack->count) < 1)
+	if (stack->size <= 0 || stack->size > PAGE_SIZE ||
+	    stack->handle.valid != 1 || refcount_read(&stack->count) < 1)
 		return 0;
 
 	buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
_






[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