From: M Hickford <mirth.hickford@xxxxxxxxx> Since 0ce02e2f (credential/libsecret: store new attributes, 2023-06-16) a test that stores empty username and password fails when t0303-credential-external.sh is run with GIT_TEST_CREDENTIAL_HELPER=libsecret. Retrieve empty password carefully. This fixes test: ok 14 - helper (libsecret) can store empty username Signed-off-by: M Hickford <mirth.hickford@xxxxxxxxx> --- libsecret: retrieve empty password cc: Patrick Steinhardt ps@xxxxxx Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1676%2Fhickford%2Flibsecret-empty-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1676/hickford/libsecret-empty-v2 Pull-Request: https://github.com/git/git/pull/1676 Range-diff vs v1: 1: 877bbfb72ed ! 1: 2cdcba20622 libsecret: retrieve empty password @@ contrib/credential/libsecret/git-credential-libsecret.c: static int keyring_get( c->password = g_strdup(parts[0]); + } else { + g_free(c->password); -+ c->password = strdup(""); ++ c->password = g_strdup(""); } for (int i = 1; i < g_strv_length(parts); i++) { if (g_str_has_prefix(parts[i], "password_expiry_utc=")) { contrib/credential/libsecret/git-credential-libsecret.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/credential/libsecret/git-credential-libsecret.c b/contrib/credential/libsecret/git-credential-libsecret.c index 215a81d8bae..90034d0cf1e 100644 --- a/contrib/credential/libsecret/git-credential-libsecret.c +++ b/contrib/credential/libsecret/git-credential-libsecret.c @@ -164,6 +164,9 @@ static int keyring_get(struct credential *c) if (g_strv_length(parts) >= 1) { g_free(c->password); c->password = g_strdup(parts[0]); + } else { + g_free(c->password); + c->password = g_strdup(""); } for (int i = 1; i < g_strv_length(parts); i++) { if (g_str_has_prefix(parts[i], "password_expiry_utc=")) { base-commit: 3e0d3cd5c7def4808247caf168e17f2bbf47892b -- gitgitgadget