aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShi Weihua <shiwh@cn.fujitsu.com>2008-05-23 13:04:59 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-24 09:56:13 -0700
commit7b26655f6208fdefa9ab0adc016116324f8d4ba8 (patch)
tree07f081c52da72a9730861c74ebea86ea48d402e2
parentf99c90094bffbe1cf38ef66f198a808c14a02d56 (diff)
sys_prctl(): fix return of uninitialized value
If none of the switch cases match, the PR_SET_PDEATHSIG and PR_SET_DUMPABLE cases of the switch statement will never write to local variable `error'. Signed-off-by: Shi Weihua <shiwh@cn.fujitsu.com> Cc: Andrew G. Morgan <morgan@kernel.org> Acked-by: "Serge E. Hallyn" <serue@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--kernel/sys.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index 895d2d4c949..14e97282eb6 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1652,7 +1652,7 @@ asmlinkage long sys_umask(int mask)
asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5)
{
- long uninitialized_var(error);
+ long error = 0;
if (security_task_prctl(option, arg2, arg3, arg4, arg5, &error))
return error;
@@ -1701,9 +1701,7 @@ asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
error = PR_TIMING_STATISTICAL;
break;
case PR_SET_TIMING:
- if (arg2 == PR_TIMING_STATISTICAL)
- error = 0;
- else
+ if (arg2 != PR_TIMING_STATISTICAL)
error = -EINVAL;
break;