On Wed, 6 Feb 2019 15:52:43 -0500
Steven Rostedt <[email protected]> wrote:

> On Fri, 18 Jan 2019 13:44:25 +0900
> Masami Hiramatsu <[email protected]> wrote:
> 
> > @@ -180,7 +183,12 @@ fetch_store_strlen(unsigned long addr)
> >     int len;
> >     void __user *vaddr = (void __force __user *) addr;
> >  
> > -   len = strnlen_user(vaddr, MAX_STRING_SIZE);
> > +   if (addr == (unsigned long)current->comm) {
> > +           len = strlen(current->comm);
> > +           if (len)
> > +                   len++;
> 
> Why only add 1 if len is non zero? Why not always do it.
> 
> One thing, len should always be greater than 0, and the other is that
> this makes it inconsistent with the NULL case of reading the address in
> userspace.

Agreed, it should not 0, so it should be;
len = strlen(current->comm) + 1;

Thank you!

> 
> -- Steve
> 
> 
> > +   } else
> > +           len = strnlen_user(vaddr, MAX_STRING_SIZE);
> >  
> >     return (len > MAX_STRING_SIZE) ? 0 : len;


-- 
Masami Hiramatsu <[email protected]>

Reply via email to