[PATCH] Fix missing parens in set_personality()

From: Russell King
Date: Thu Nov 09 2006 - 08:47:10 EST


If you call set_personality() with an expression such as:

set_personality(foo ? PERS_FOO1 : PERS_FOO2);

then this evaluates to:

((current->personality == foo ? PERS_FOO1 : PERS_FOO2) ? ...

which is obviously not the intended result. Add the missing parents
to ensure this gets evaluated as expected:

((current->personality == (foo ? PERS_FOO1 : PERS_FOO2)) ? ...

Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>

diff --git a/include/linux/personality.h b/include/linux/personality.h
index bf4cf20..012cd55 100644
--- a/include/linux/personality.h
+++ b/include/linux/personality.h
@@ -114,7 +114,7 @@ #define get_personality (current->perso
* Change personality of the currently running process.
*/
#define set_personality(pers) \
- ((current->personality == pers) ? 0 : __set_personality(pers))
+ ((current->personality == (pers)) ? 0 : __set_personality(pers))

#endif /* __KERNEL__ */


--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/