Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[platform/kernel/linux-starfive.git] / fs / proc / util.c
1 #include <linux/dcache.h>
2 #include "internal.h"
3
4 unsigned name_to_int(const struct qstr *qstr)
5 {
6         const char *name = qstr->name;
7         int len = qstr->len;
8         unsigned n = 0;
9
10         if (len > 1 && *name == '0')
11                 goto out;
12         do {
13                 unsigned c = *name++ - '0';
14                 if (c > 9)
15                         goto out;
16                 if (n >= (~0U-9)/10)
17                         goto out;
18                 n *= 10;
19                 n += c;
20         } while (--len > 0);
21         return n;
22 out:
23         return ~0U;
24 }