Peter Samuelson wrote:
> 
> [Torsten Duwe]
> > >>>>> "Francis" == Francis Galiegue <[EMAIL PROTECTED]> writes:
> >
> >     >> + if ((*p & 0xdf) >= 'a' && (*p & 0xdf) <= 'z') continue;
> >
> >     Francis> Just in case... Some modules have uppercase letters too :)
> >
> > That's what the &0xdf is intended for...
> 
> It's wrong, then: you've converted to uppercase, not lowercase.
> 
> request_module is not a fast path.  Do it the obvious, unoptimized way:
> 
>   if ((*p < 'a' || *p > 'z') &&
>       (*p < 'A' || *p > 'Z') &&
>       (*p < '0' || *p > '9') &&
>       *p != '-' && *p != '_')
>     return -EINVAL;

Heading in the right direction, but this is equivalent to:

  if (isalnum(*p) && *p != '-' && *p != '_') return -EINVAL;

which is faster, smaller and easier to read.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to