summaryrefslogtreecommitdiff
path: root/src/test/test-user-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-06-01 17:16:46 +0200
committerLennart Poettering <lennart@poettering.net>2020-06-05 15:56:31 +0200
commitf5979b63cc305ba217dfd174b1bf0583bcf75a73 (patch)
tree201cc6c75818b4afa675576e124d76d9a3dca5c8 /src/test/test-user-util.c
parentc44702a8bd8cc8b7f2f1df21db9308d9af7dda5b (diff)
downloadsystemd-f5979b63cc305ba217dfd174b1bf0583bcf75a73.tar.gz
user-util: be stricter in parse_uid()
Let's refuse "+" and "-" prefixed UIDs. Let's refuse whitespace-prefixed UIDS, Let's refuse zero-prefixed UIDs. Let's be safe than sorry.
Diffstat (limited to 'src/test/test-user-util.c')
-rw-r--r--src/test/test-user-util.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/test/test-user-util.c b/src/test/test-user-util.c
index 3165232fef..7d2efc8c59 100644
--- a/src/test/test-user-util.c
+++ b/src/test/test-user-util.c
@@ -54,13 +54,33 @@ static void test_parse_uid(void) {
assert_se(r == -EINVAL);
assert_se(uid == 100);
+ r = parse_uid("+1234", &uid);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
+
+ r = parse_uid("-1234", &uid);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
+
+ r = parse_uid(" 1234", &uid);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
+
r = parse_uid("01234", &uid);
- assert_se(r == 0);
- assert_se(uid == 1234);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
+
+ r = parse_uid("-0", &uid);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
+
+ r = parse_uid("+0", &uid);
+ assert_se(r == -EINVAL);
+ assert_se(uid == 100);
r = parse_uid("asdsdas", &uid);
assert_se(r == -EINVAL);
- assert_se(uid == 1234);
+ assert_se(uid == 100);
}
static void test_uid_ptr(void) {