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