1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <linux/dcache.h>
| #include "internal.h"
|
| unsigned name_to_int(const struct qstr *qstr)
| {
| const char *name = qstr->name;
| int len = qstr->len;
| unsigned n = 0;
|
| if (len > 1 && *name == '0')
| goto out;
| do {
| unsigned c = *name++ - '0';
| if (c > 9)
| goto out;
| if (n >= (~0U-9)/10)
| goto out;
| n *= 10;
| n += c;
| } while (--len > 0);
| return n;
| out:
| return ~0U;
| }
|
|