creds-util: make read_credential_strings_many behave the same as comment

The comment states "If the specified buffers are already non-NULL
frees them if a credential is found".

Also return 1 if all credentials are found.
This commit is contained in:
Mike Yuan
2024-01-10 09:54:39 +01:00
committed by Lennart Poettering
parent ff85480458
commit 95bcaa4e81
2 changed files with 17 additions and 20 deletions
+4 -8
View File
@@ -42,18 +42,12 @@ TEST(read_credential_strings) {
assert_se(read_credential_strings_many("foo", &x, "bar", &y) == 0);
assert_se(x == NULL);
assert_se(streq(y, "piff"));
assert_se(streq(y, "paff"));
p = mfree(p);
assert_se(p = path_join(tmp, "foo"));
assert_se(write_string_file(p, "knurz", WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_AVOID_NEWLINE) >= 0);
assert_se(read_credential_strings_many("foo", &x, "bar", &y) >= 0);
assert_se(streq(x, "knurz"));
assert_se(streq(y, "piff"));
y = mfree(y);
assert_se(read_credential_strings_many("foo", &x, "bar", &y) >= 0);
assert_se(streq(x, "knurz"));
assert_se(streq(y, "paff"));
@@ -64,7 +58,9 @@ TEST(read_credential_strings) {
assert_se(fwrite("x\0y", 1, 3, f) == 3); /* embedded NUL byte should result in EBADMSG when reading back with read_credential_strings_many() */
f = safe_fclose(f);
assert_se(read_credential_strings_many("bazz", &x, "foo", &y) == -EBADMSG);
y = mfree(y);
assert_se(read_credential_strings_many("bazz", &x, "bar", &y) == -EBADMSG);
assert_se(streq(x, "knurz"));
assert_se(streq(y, "paff"));