diff options
| author | Tony Luck <tony.luck@intel.com> | 2005-05-17 18:53:14 -0400 |
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2005-05-17 18:53:14 -0400 |
| commit | 325a479c4c110db278ef3361460a48c4093252cc (patch) | |
| tree | bcfbf4d0647d9442045639a5c19da59d55190e81 /kernel/sys.c | |
| parent | ebcc80c1b6629a445f7471cc1ddb48faf8a84e70 (diff) | |
| parent | 7f9eaedf894dbaa08c157832e9a6c9c03ffed1ed (diff) | |
Merge with temp tree to get David's gdb inferior calls patch
Diffstat (limited to 'kernel/sys.c')
| -rw-r--r-- | kernel/sys.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index 462d78d55895..f64e97cabe25 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #include <linux/dcookies.h> | 25 | #include <linux/dcookies.h> |
| 26 | #include <linux/suspend.h> | 26 | #include <linux/suspend.h> |
| 27 | #include <linux/tty.h> | 27 | #include <linux/tty.h> |
| 28 | #include <linux/signal.h> | ||
| 28 | 29 | ||
| 29 | #include <linux/compat.h> | 30 | #include <linux/compat.h> |
| 30 | #include <linux/syscalls.h> | 31 | #include <linux/syscalls.h> |
| @@ -227,7 +228,7 @@ static int set_one_prio(struct task_struct *p, int niceval, int error) | |||
| 227 | error = -EPERM; | 228 | error = -EPERM; |
| 228 | goto out; | 229 | goto out; |
| 229 | } | 230 | } |
| 230 | if (niceval < task_nice(p) && !capable(CAP_SYS_NICE)) { | 231 | if (niceval < task_nice(p) && !can_nice(p, niceval)) { |
| 231 | error = -EACCES; | 232 | error = -EACCES; |
| 232 | goto out; | 233 | goto out; |
| 233 | } | 234 | } |
| @@ -525,7 +526,7 @@ asmlinkage long sys_setregid(gid_t rgid, gid_t egid) | |||
| 525 | if (new_egid != old_egid) | 526 | if (new_egid != old_egid) |
| 526 | { | 527 | { |
| 527 | current->mm->dumpable = 0; | 528 | current->mm->dumpable = 0; |
| 528 | wmb(); | 529 | smp_wmb(); |
| 529 | } | 530 | } |
| 530 | if (rgid != (gid_t) -1 || | 531 | if (rgid != (gid_t) -1 || |
| 531 | (egid != (gid_t) -1 && egid != old_rgid)) | 532 | (egid != (gid_t) -1 && egid != old_rgid)) |
| @@ -556,7 +557,7 @@ asmlinkage long sys_setgid(gid_t gid) | |||
| 556 | if(old_egid != gid) | 557 | if(old_egid != gid) |
| 557 | { | 558 | { |
| 558 | current->mm->dumpable=0; | 559 | current->mm->dumpable=0; |
| 559 | wmb(); | 560 | smp_wmb(); |
| 560 | } | 561 | } |
| 561 | current->gid = current->egid = current->sgid = current->fsgid = gid; | 562 | current->gid = current->egid = current->sgid = current->fsgid = gid; |
| 562 | } | 563 | } |
| @@ -565,7 +566,7 @@ asmlinkage long sys_setgid(gid_t gid) | |||
| 565 | if(old_egid != gid) | 566 | if(old_egid != gid) |
| 566 | { | 567 | { |
| 567 | current->mm->dumpable=0; | 568 | current->mm->dumpable=0; |
| 568 | wmb(); | 569 | smp_wmb(); |
| 569 | } | 570 | } |
| 570 | current->egid = current->fsgid = gid; | 571 | current->egid = current->fsgid = gid; |
| 571 | } | 572 | } |
| @@ -596,7 +597,7 @@ static int set_user(uid_t new_ruid, int dumpclear) | |||
| 596 | if(dumpclear) | 597 | if(dumpclear) |
| 597 | { | 598 | { |
| 598 | current->mm->dumpable = 0; | 599 | current->mm->dumpable = 0; |
| 599 | wmb(); | 600 | smp_wmb(); |
| 600 | } | 601 | } |
| 601 | current->uid = new_ruid; | 602 | current->uid = new_ruid; |
| 602 | return 0; | 603 | return 0; |
| @@ -653,7 +654,7 @@ asmlinkage long sys_setreuid(uid_t ruid, uid_t euid) | |||
| 653 | if (new_euid != old_euid) | 654 | if (new_euid != old_euid) |
| 654 | { | 655 | { |
| 655 | current->mm->dumpable=0; | 656 | current->mm->dumpable=0; |
| 656 | wmb(); | 657 | smp_wmb(); |
| 657 | } | 658 | } |
| 658 | current->fsuid = current->euid = new_euid; | 659 | current->fsuid = current->euid = new_euid; |
| 659 | if (ruid != (uid_t) -1 || | 660 | if (ruid != (uid_t) -1 || |
| @@ -703,7 +704,7 @@ asmlinkage long sys_setuid(uid_t uid) | |||
| 703 | if (old_euid != uid) | 704 | if (old_euid != uid) |
| 704 | { | 705 | { |
| 705 | current->mm->dumpable = 0; | 706 | current->mm->dumpable = 0; |
| 706 | wmb(); | 707 | smp_wmb(); |
| 707 | } | 708 | } |
| 708 | current->fsuid = current->euid = uid; | 709 | current->fsuid = current->euid = uid; |
| 709 | current->suid = new_suid; | 710 | current->suid = new_suid; |
| @@ -748,7 +749,7 @@ asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid) | |||
| 748 | if (euid != current->euid) | 749 | if (euid != current->euid) |
| 749 | { | 750 | { |
| 750 | current->mm->dumpable = 0; | 751 | current->mm->dumpable = 0; |
| 751 | wmb(); | 752 | smp_wmb(); |
| 752 | } | 753 | } |
| 753 | current->euid = euid; | 754 | current->euid = euid; |
| 754 | } | 755 | } |
| @@ -798,7 +799,7 @@ asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid) | |||
| 798 | if (egid != current->egid) | 799 | if (egid != current->egid) |
| 799 | { | 800 | { |
| 800 | current->mm->dumpable = 0; | 801 | current->mm->dumpable = 0; |
| 801 | wmb(); | 802 | smp_wmb(); |
| 802 | } | 803 | } |
| 803 | current->egid = egid; | 804 | current->egid = egid; |
| 804 | } | 805 | } |
| @@ -845,7 +846,7 @@ asmlinkage long sys_setfsuid(uid_t uid) | |||
| 845 | if (uid != old_fsuid) | 846 | if (uid != old_fsuid) |
| 846 | { | 847 | { |
| 847 | current->mm->dumpable = 0; | 848 | current->mm->dumpable = 0; |
| 848 | wmb(); | 849 | smp_wmb(); |
| 849 | } | 850 | } |
| 850 | current->fsuid = uid; | 851 | current->fsuid = uid; |
| 851 | } | 852 | } |
| @@ -875,7 +876,7 @@ asmlinkage long sys_setfsgid(gid_t gid) | |||
| 875 | if (gid != old_fsgid) | 876 | if (gid != old_fsgid) |
| 876 | { | 877 | { |
| 877 | current->mm->dumpable = 0; | 878 | current->mm->dumpable = 0; |
| 878 | wmb(); | 879 | smp_wmb(); |
| 879 | } | 880 | } |
| 880 | current->fsgid = gid; | 881 | current->fsgid = gid; |
| 881 | key_fsgid_changed(current); | 882 | key_fsgid_changed(current); |
| @@ -1637,7 +1638,7 @@ asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3, | |||
| 1637 | switch (option) { | 1638 | switch (option) { |
| 1638 | case PR_SET_PDEATHSIG: | 1639 | case PR_SET_PDEATHSIG: |
| 1639 | sig = arg2; | 1640 | sig = arg2; |
| 1640 | if (sig < 0 || sig > _NSIG) { | 1641 | if (!valid_signal(sig)) { |
| 1641 | error = -EINVAL; | 1642 | error = -EINVAL; |
| 1642 | break; | 1643 | break; |
| 1643 | } | 1644 | } |
