mirror of
https://github.com/systemd/systemd.git
synced 2024-10-28 20:25:38 +03:00
test: do not call alloca() inside the list of arguments
This commit is contained in:
parent
ce088d6fb4
commit
2d2c21afb2
@ -187,94 +187,65 @@ static void test_base32hexmem(void) {
|
||||
free(b32);
|
||||
}
|
||||
|
||||
static void test_unbase32hexmem(void) {
|
||||
void *mem;
|
||||
static void test_unbase32hexmem_one(const char *hex, bool padding, int retval, const char *ans) {
|
||||
_cleanup_free_ void *mem = NULL;
|
||||
size_t len;
|
||||
|
||||
assert_se(unbase32hexmem("", STRLEN(""), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), ""));
|
||||
free(mem);
|
||||
assert_se(unbase32hexmem(hex, (size_t) -1, padding, &mem, &len) == retval);
|
||||
if (retval == 0) {
|
||||
char *str;
|
||||
|
||||
assert_se(unbase32hexmem("CO======", STRLEN("CO======"), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "f"));
|
||||
free(mem);
|
||||
str = strndupa(mem, len);
|
||||
assert_se(streq(str, ans));
|
||||
}
|
||||
}
|
||||
|
||||
assert_se(unbase32hexmem("CPNG====", STRLEN("CPNG===="), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "fo"));
|
||||
free(mem);
|
||||
static void test_unbase32hexmem(void) {
|
||||
test_unbase32hexmem_one("", true, 0, "");
|
||||
|
||||
assert_se(unbase32hexmem("CPNMU===", STRLEN("CPNMU==="), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "foo"));
|
||||
free(mem);
|
||||
test_unbase32hexmem_one("CO======", true, 0, "f");
|
||||
test_unbase32hexmem_one("CPNG====", true, 0, "fo");
|
||||
test_unbase32hexmem_one("CPNMU===", true, 0, "foo");
|
||||
test_unbase32hexmem_one("CPNMUOG=", true, 0, "foob");
|
||||
test_unbase32hexmem_one("CPNMUOJ1", true, 0, "fooba");
|
||||
test_unbase32hexmem_one("CPNMUOJ1E8======", true, 0, "foobar");
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOG=", STRLEN("CPNMUOG="), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "foob"));
|
||||
free(mem);
|
||||
test_unbase32hexmem_one("A", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("A=======", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAA=====", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAAAA==", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AB======", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAB====", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAAB===", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAAAAB=", true, -EINVAL, NULL);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "fooba"));
|
||||
free(mem);
|
||||
test_unbase32hexmem_one("XPNMUOJ1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CXNMUOJ1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPXMUOJ1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPNXUOJ1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPNMXOJ1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPNMUXJ1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPNMUOX1", true, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPNMUOJX", true, -EINVAL, NULL);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOJ1E8======", STRLEN("CPNMUOJ1E8======"), true, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "foobar"));
|
||||
free(mem);
|
||||
test_unbase32hexmem_one("", false, 0, "");
|
||||
test_unbase32hexmem_one("CO", false, 0, "f");
|
||||
test_unbase32hexmem_one("CPNG", false, 0, "fo");
|
||||
test_unbase32hexmem_one("CPNMU", false, 0, "foo");
|
||||
test_unbase32hexmem_one("CPNMUOG", false, 0, "foob");
|
||||
test_unbase32hexmem_one("CPNMUOJ1", false, 0, "fooba");
|
||||
test_unbase32hexmem_one("CPNMUOJ1E8", false, 0, "foobar");
|
||||
test_unbase32hexmem_one("CPNMUOG=", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("CPNMUOJ1E8======", false, -EINVAL, NULL);
|
||||
|
||||
assert_se(unbase32hexmem("A", STRLEN("A"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("A=======", STRLEN("A======="), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAA=====", STRLEN("AAA====="), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAAAA==", STRLEN("AAAAAA=="), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AB======", STRLEN("AB======"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAB====", STRLEN("AAAB===="), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAAB===", STRLEN("AAAAB==="), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAAAAB=", STRLEN("AAAAAAB="), true, &mem, &len) == -EINVAL);
|
||||
|
||||
assert_se(unbase32hexmem("XPNMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CXNMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPXMUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPNXUOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPNMXOJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPNMUXJ1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPNMUOX1", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPNMUOJX", STRLEN("CPNMUOJ1"), true, &mem, &len) == -EINVAL);
|
||||
|
||||
assert_se(unbase32hexmem("", STRLEN(""), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), ""));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CO", STRLEN("CO"), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "f"));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CPNG", STRLEN("CPNG"), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "fo"));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMU", STRLEN("CPNMU"), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "foo"));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOG", STRLEN("CPNMUOG"), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "foob"));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOJ1", STRLEN("CPNMUOJ1"), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "fooba"));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOJ1E8", STRLEN("CPNMUOJ1E8"), false, &mem, &len) == 0);
|
||||
assert_se(streq(strndupa(mem, len), "foobar"));
|
||||
free(mem);
|
||||
|
||||
assert_se(unbase32hexmem("CPNMUOG=", STRLEN("CPNMUOG="), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("CPNMUOJ1E8======", STRLEN("CPNMUOJ1E8======"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("A", STRLEN("A"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("A", STRLEN("A"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAA", STRLEN("AAA"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAAAA", STRLEN("AAAAAA"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AB", STRLEN("AB"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAB", STRLEN("AAAB"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAAB", STRLEN("AAAAB"), false, &mem, &len) == -EINVAL);
|
||||
assert_se(unbase32hexmem("AAAAAAB", STRLEN("AAAAAAB"), false, &mem, &len) == -EINVAL);
|
||||
test_unbase32hexmem_one("A", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("A", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAA", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAAAA", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AB", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAB", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAAB", false, -EINVAL, NULL);
|
||||
test_unbase32hexmem_one("AAAAAAB", false, -EINVAL, NULL);
|
||||
}
|
||||
|
||||
/* https://tools.ietf.org/html/rfc4648#section-10 */
|
||||
|
Loading…
Reference in New Issue
Block a user