diff options
| author | David S. Miller <davem@davemloft.net> | 2018-02-24 00:04:20 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2018-02-24 00:04:20 -0500 |
| commit | f74290fdb363665538743d14c4f00aeacdb68d87 (patch) | |
| tree | a5c8f6332f06550e935d1e557ac927302f7f63c4 /kernel/seccomp.c | |
| parent | 1b71af6053af1bd2f849e9fda4f71c1e3f145dcf (diff) | |
| parent | 9cb9c07d6b0c5fd97d83b8ab14d7e308ba4b612f (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'kernel/seccomp.c')
| -rw-r--r-- | kernel/seccomp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 940fa408a288..dc77548167ef 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -1076,14 +1076,16 @@ long seccomp_get_metadata(struct task_struct *task, size = min_t(unsigned long, size, sizeof(kmd)); - if (copy_from_user(&kmd, data, size)) + if (size < sizeof(kmd.filter_off)) + return -EINVAL; + + if (copy_from_user(&kmd.filter_off, data, sizeof(kmd.filter_off))) return -EFAULT; filter = get_nth_filter(task, kmd.filter_off); if (IS_ERR(filter)) return PTR_ERR(filter); - memset(&kmd, 0, sizeof(kmd)); if (filter->log) kmd.flags |= SECCOMP_FILTER_FLAG_LOG; |
