hc
2024-03-26 e0728245c89800c2038c23308f2d88969d5b41c8
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;
}