On August 24, 2015 1:56:13 AM PDT, Sean Fu <fxinr...@gmail.com> wrote: >when the input argument "count" including the terminating byte "\0", >The write system call return EINVAL on proc file. >But it return success on regular file.
Nonsense. It will write the '\0' to a regular file because it is just data. Integers in proc are more than data. So I see no justification for this change. Eric >E.g. Writting two bytes ("1\0") to >"/proc/sys/net/ipv4/conf/eth0/rp_filter". >write(fd, "1\0", 2) return EINVAL. > >Signed-off-by: Sean Fu <fxinr...@gmail.com> >--- > kernel/sysctl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/kernel/sysctl.c b/kernel/sysctl.c >index 19b62b5..c2b0594 100644 >--- a/kernel/sysctl.c >+++ b/kernel/sysctl.c >@@ -2004,7 +2004,7 @@ static int do_proc_dointvec_conv(bool *negp, >unsigned long *lvalp, > return 0; > } > >-static const char proc_wspace_sep[] = { ' ', '\t', '\n' }; >+static const char proc_wspace_sep[] = { ' ', '\t', '\n', '\0' }; > > static int __do_proc_dointvec(void *tbl_data, struct ctl_table *table, > int write, void __user *buffer, -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/