lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080215123459.0a675826.akpm@linux-foundation.org>
Date:	Fri, 15 Feb 2008 12:34:59 -0800
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	WANG Cong <xiyou.wangcong@...il.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [Patch] Fix shadowed variables in fs/binfmt_elf.c

On Fri, 15 Feb 2008 21:58:02 +0800 (CST)
WANG Cong <xiyou.wangcong@...il.com> wrote:

> 
> Fix these sparse warings:
> fs/binfmt_elf.c:1749:29: warning: symbol 'tmp' shadows an earlier one
> fs/binfmt_elf.c:1734:28: originally declared here
> fs/binfmt_elf.c:2009:26: warning: symbol 'vma' shadows an earlier one
> fs/binfmt_elf.c:1892:24: originally declared here
> 
> Signed-off-by: WANG Cong <xiyou.wangcong@...il.com>
> 
> ---
> diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
> index 41a958a..6562563 100644
> --- a/fs/binfmt_elf.c
> +++ b/fs/binfmt_elf.c
> @@ -1746,11 +1746,11 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
>  		while_each_thread(g, p);
>  		rcu_read_unlock();
>  		list_for_each(t, &info->thread_list) {
> -			struct elf_thread_status *tmp;
> +			struct elf_thread_status *temp;
>  			int sz;
>  
> -			tmp = list_entry(t, struct elf_thread_status, list);
> -			sz = elf_dump_thread_status(signr, tmp);
> +			temp = list_entry(t, struct elf_thread_status, list);
> +			sz = elf_dump_thread_status(signr, temp);
>  			info->thread_status_size += sz;
>  		}
>  	}

`tmp' is an awful identifier, and renaming it to "temp" hardly improves it.
Please take any opportunity to fix this sort of thing.

I chose "ets" which is a bit weird but once one understand what it means,
it makes the code much easier to follow.

Also used the same local for both loops.  There seems little point in
instantiating a second one.


diff -puN fs/binfmt_elf.c~elf-fix-shadowed-variables-in-fs-binfmt_elfc fs/binfmt_elf.c
--- a/fs/binfmt_elf.c~elf-fix-shadowed-variables-in-fs-binfmt_elfc
+++ a/fs/binfmt_elf.c
@@ -1728,26 +1728,25 @@ static int fill_note_info(struct elfhdr 
 
 	info->thread_status_size = 0;
 	if (signr) {
-		struct elf_thread_status *tmp;
+		struct elf_thread_status *ets;
 		rcu_read_lock();
 		do_each_thread(g, p)
 			if (current->mm == p->mm && current != p) {
-				tmp = kzalloc(sizeof(*tmp), GFP_ATOMIC);
-				if (!tmp) {
+				ets = kzalloc(sizeof(*ets), GFP_ATOMIC);
+				if (!ets) {
 					rcu_read_unlock();
 					return 0;
 				}
-				tmp->thread = p;
-				list_add(&tmp->list, &info->thread_list);
+				ets->thread = p;
+				list_add(&ets->list, &info->thread_list);
 			}
 		while_each_thread(g, p);
 		rcu_read_unlock();
 		list_for_each(t, &info->thread_list) {
-			struct elf_thread_status *tmp;
 			int sz;
 
-			tmp = list_entry(t, struct elf_thread_status, list);
-			sz = elf_dump_thread_status(signr, tmp);
+			ets = list_entry(t, struct elf_thread_status, list);
+			sz = elf_dump_thread_status(signr, ets);
 			info->thread_status_size += sz;
 		}
 	}
@@ -2003,10 +2002,10 @@ static int elf_core_dump(long signr, str
 
 		for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
 			struct page *page;
-			struct vm_area_struct *vma;
+			struct vm_area_struct *tmp_vma;
 
 			if (get_user_pages(current, current->mm, addr, 1, 0, 1,
-						&page, &vma) <= 0) {
+						&page, &tmp_vma) <= 0) {
 				DUMP_SEEK(PAGE_SIZE);
 			} else {
 				if (page == ZERO_PAGE(0)) {
@@ -2016,7 +2015,7 @@ static int elf_core_dump(long signr, str
 					}
 				} else {
 					void *kaddr;
-					flush_cache_page(vma, addr,
+					flush_cache_page(tmp_vma, addr,
 							 page_to_pfn(page));
 					kaddr = kmap(page);
 					if ((size += PAGE_SIZE) > limit ||
_

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ