diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:39 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:39 -0400 |
commit | 758333458aa719bfc26ec16eafd4ad3a9e96014d (patch) | |
tree | 84e4995b4e61b73ac1e235ea1554c75907ab08c4 | |
parent | 95912008ba1fb9d0677c1ce5930aeb0e85ba5710 (diff) |
[PATCH] Check return value of copy_to_user in compat_sys_pselect7
Fix
linux/fs/compat.c: In function compat_sys_pselect7
linux/fs/compat.c:1869: warning: ignoring return value of copy_to_user, declared with attribute warn_unused_result
To make it easier to handle I changed to semantics to not try to
write out a timespec if an error occurred. I hope that's ok.
Cc: dwmw2@infradead.org
Signed-off-by: Andi Kleen <ak@suse.de>
-rw-r--r-- | fs/compat.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/compat.c b/fs/compat.c index e31e9cf96647..ce982f6e8c80 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -1855,7 +1855,7 @@ asmlinkage long compat_sys_pselect7(int n, compat_ulong_t __user *inp, | |||
1855 | 1855 | ||
1856 | } while (!ret && !timeout && tsp && (ts.tv_sec || ts.tv_nsec)); | 1856 | } while (!ret && !timeout && tsp && (ts.tv_sec || ts.tv_nsec)); |
1857 | 1857 | ||
1858 | if (tsp && !(current->personality & STICKY_TIMEOUTS)) { | 1858 | if (ret == 0 && tsp && !(current->personality & STICKY_TIMEOUTS)) { |
1859 | struct compat_timespec rts; | 1859 | struct compat_timespec rts; |
1860 | 1860 | ||
1861 | rts.tv_sec = timeout / HZ; | 1861 | rts.tv_sec = timeout / HZ; |
@@ -1866,7 +1866,8 @@ asmlinkage long compat_sys_pselect7(int n, compat_ulong_t __user *inp, | |||
1866 | } | 1866 | } |
1867 | if (compat_timespec_compare(&rts, &ts) >= 0) | 1867 | if (compat_timespec_compare(&rts, &ts) >= 0) |
1868 | rts = ts; | 1868 | rts = ts; |
1869 | copy_to_user(tsp, &rts, sizeof(rts)); | 1869 | if (copy_to_user(tsp, &rts, sizeof(rts))) |
1870 | ret = -EFAULT; | ||
1870 | } | 1871 | } |
1871 | 1872 | ||
1872 | if (ret == -ERESTARTNOHAND) { | 1873 | if (ret == -ERESTARTNOHAND) { |