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-next>] [day] [month] [year] [list]
Message-ID: <20140307105242.79a0befd@gandalf.local.home>
Date:	Fri, 7 Mar 2014 10:52:42 -0500
From:	Steven Rostedt <rostedt@...dmis.org>
To:	LKML <linux-kernel@...r.kernel.org>
Cc:	"H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...nel.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Dan Carpenter <dan.carpenter@...cle.com>,
	Jesper Juhl <jesper.juhl@...il.com>,
	Alexander van Heukelum <heukelum@...tmail.fm>
Subject: [PATCH] i386: Remove unneeded test of 'task' in dump_trace()
 (again)


Commit 028a690a1ebc8b "i386: Remove unneeded test of 'task' in dump_trace()"
correctly removed the unneeded 'task != NULL' check because it would
be set to current if it was NULL.

Commit 2bc5f927d489 "i386: split out dumpstack code from traps_32.c"
moved the code from traps_32.c to its own file dump_stack.c for
preparation of the i386 / x86_64 merge.

Commit 8a541665b906 "dumpstack: x86: various small unification steps"
worked to make i386 and x86_64 dump_stack logic similar. But this
actually reverted the correct change from 028a690a1ebc8b.

Commit d0caf292505d "x86/dumpstack: Remove unneeded check in dump_trace()"
removed the unneeded "task != NULL" check for x86_64 but left that same
unneeded check for i386, that was added because x86_64 had it!

This chain of events ironically had i386 add back the unneeded task != NULL
check because x86_64 did it, and then the fix for x86_64 was fixed
by Dan. And even more ironically, it was Dan's smatch bot that told
me that a change to dump_stack_32 I made may be wrong if current can
be NULL (it can't), as there was a check for it by assigning task to
current, and then checking if task is NULL.

Reported-by: Dan Carpenter <dan.carpenter@...cle.com>
Cc: Jesper Juhl <jesper.juhl@...il.com>
Cc: Alexander van Heukelum <heukelum@...tmail.fm>
Signed-off-by: Steven Rostedt <rostedt@...dmis.org>
---
 arch/x86/kernel/dumpstack_32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
index dca820b..5abd4cd 100644
--- a/arch/x86/kernel/dumpstack_32.c
+++ b/arch/x86/kernel/dumpstack_32.c
@@ -53,7 +53,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
 		unsigned long dummy;
 
 		stack = &dummy;
-		if (task && task != current)
+		if (task != current)
 			stack = (unsigned long *)task->thread.sp;
 	}
 
-- 
1.8.1.4

--
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