On Tue, 28 Mar 2017 15:01:28 +0200 Dmitry Vyukov <dvyu...@google.com> wrote:
> +static ssize_t proc_fail_nth_write(struct file *file, const char __user *buf, > + size_t count, loff_t *ppos) > +{ > + struct task_struct *task; > + int err, n; > + > + task = get_proc_task(file_inode(file)); > + if (!task) > + return -ESRCH; > + put_task_struct(task); > + if (task != current) > + return -EPERM; > + err = kstrtoint_from_user(buf, count, 10, &n); > + if (err) > + return err; > + if (n < 0 || n == INT_MAX) > + return -EINVAL; > + current->fail_nth = n + 1; > + return len; > +} Well that didn't go too well. --- a/fs/proc/base.c~fault-inject-support-systematic-fault-injection-fix +++ a/fs/proc/base.c @@ -1377,7 +1377,7 @@ static ssize_t proc_fail_nth_write(struc if (n < 0 || n == INT_MAX) return -EINVAL; current->fail_nth = n + 1; - return len; + return count; } static ssize_t proc_fail_nth_read(struct file *file, char __user *buf, Are you sure I merged the correct version of this?