Skip to content

Commit

Permalink
include/linux/cpumask.h: fix double string traverse in cpumask_parse
Browse files Browse the repository at this point in the history
cpumask_parse() finds first occurrence of either or strchr() and
strlen().  We can do it better with a single call of strchrnul().

[akpm@linux-foundation.org: remove unneeded cast]
Link: http://lkml.kernel.org/r/20190409204208.12190-1-ynorov@marvell.com
Signed-off-by: Yury Norov <ynorov@marvell.com>
Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Yury Norov authored and Linus Torvalds committed May 15, 2019
1 parent 4e7301e commit 3713a4e
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions include/linux/cpumask.h
Original file line number Diff line number Diff line change
Expand Up @@ -633,8 +633,7 @@ static inline int cpumask_parselist_user(const char __user *buf, int len,
*/
static inline int cpumask_parse(const char *buf, struct cpumask *dstp)
{
char *nl = strchr(buf, '\n');
unsigned int len = nl ? (unsigned int)(nl - buf) : strlen(buf);
unsigned int len = strchrnul(buf, '\n') - buf;

return bitmap_parse(buf, len, cpumask_bits(dstp), nr_cpumask_bits);
}
Expand Down

0 comments on commit 3713a4e

Please sign in to comment.