Message ID | pull.1676.git.git.1708296694988.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | libsecret: retrieve empty password | expand |
On Sun, Feb 18, 2024 at 10:51:34PM +0000, M Hickford via GitGitGadget wrote: > From: M Hickford <mirth.hickford@gmail.com> > > 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@gmail.com> > --- > libsecret: retrieve empty password > > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1676%2Fhickford%2Flibsecret-empty-v1 > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1676/hickford/libsecret-empty-v1 > Pull-Request: https://github.com/git/git/pull/1676 > > 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..d9e9e4fd524 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 = strdup(""); Shouldn't we use `g_strdup()` here, like we do everywhere else in this credential helper? Patrick > } > for (int i = 1; i < g_strv_length(parts); i++) { > if (g_str_has_prefix(parts[i], "password_expiry_utc=")) { > > base-commit: 3e0d3cd5c7def4808247caf168e17f2bbf47892b > -- > gitgitgadget >
> > + g_free(c->password); > > + c->password = strdup(""); > > Shouldn't we use `g_strdup()` here, like we do everywhere else in this > credential helper? You're right. I'll correct in patch v2.
diff --git a/contrib/credential/libsecret/git-credential-libsecret.c b/contrib/credential/libsecret/git-credential-libsecret.c index 215a81d8bae..d9e9e4fd524 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 = strdup(""); } for (int i = 1; i < g_strv_length(parts); i++) { if (g_str_has_prefix(parts[i], "password_expiry_utc=")) {