Messages in this thread | | | From | Octavian Purdila <> | Subject | Re: [net-next PATCH v4 1/3] sysctl: refactor integer handling proc code | Date | Tue, 16 Feb 2010 15:44:33 +0200 |
| |
On Tuesday 16 February 2010 15:09:51 you wrote: > Octavian Purdila wrote: > > On Tuesday 16 February 2010 10:41:07 you wrote: > >>> +static int proc_skip_wspace(char __user **buf, size_t *size) > >>> +{ > >>> + char c; > >>> + > >>> + while (*size) { > >>> + if (get_user(c, *buf)) > >>> + return -EFAULT; > >>> + if (!isspace(c)) > >>> + break; > >>> + (*size)--; (*buf)++; > >>> + } > >>> + > >>> + return 0; > >>> +} > >> > >> In lib/string.c we have skip_spaces(), I think we can use it > >> here instead of inventing another one. > > > > I'm afraid we can't, skip_spaces does not accept userspace buffers. > > Well, you need to use copy_from_user() before call it. >
And how much would you copy? You need to either use a stack buffer and do a loop copy or you would need to copy the whole userspace buffer which means we need to allocate a kernel buffer. I think its much cleaner the way is currently done.
| |