parse-util: rework parse_dev() based on safe_atou() and DEVICE_MAJOR_VALID()/DEVICE_MINOR_VALID()
Let's be a bit more careful when parsing major/minor pairs, and filter out more corner cases. This also means using safe_atou() rather than sscanf() to avoid weird negative unsigned handling and such.
This commit is contained in:
@@ -726,10 +726,12 @@ static void test_parse_dev(void) {
|
||||
assert_se(parse_dev("5", &dev) == -EINVAL);
|
||||
assert_se(parse_dev("5:", &dev) == -EINVAL);
|
||||
assert_se(parse_dev(":5", &dev) == -EINVAL);
|
||||
assert_se(parse_dev("-1:-1", &dev) == -EINVAL);
|
||||
#if SIZEOF_DEV_T < 8
|
||||
assert_se(parse_dev("4294967295:4294967295", &dev) == -EINVAL);
|
||||
#endif
|
||||
assert_se(parse_dev("8:11", &dev) >= 0 && major(dev) == 8 && minor(dev) == 11);
|
||||
assert_se(parse_dev("0:0", &dev) >= 0 && major(dev) == 0 && minor(dev) == 0);
|
||||
}
|
||||
|
||||
static void test_parse_errno(void) {
|
||||
|
||||
Reference in New Issue
Block a user