Skip to content

Commit 21b1c38

Browse files
authored
secret service: fix error creating credential (#996)
Multiple Linux users have reported that they are unable to use Secret Service as their credential store, as GCM throws the following error: sec_free: Assertion `cell->requested > 0' failed. The root cause is that we're using the libsecret secret_value_get function to obtain secret data, then attempting to free the string with secret_password_free. It appears that secret_password_free is only meant to be used to free nonpageable memory [1], however. Removing this call fixes the issue, as verified with a successful git-credential-manager diagnose (which was previously failing with the above error). [1] secret_password_free manpage https://www.manpagez.com/html/libsecret-1/libsecret-1-0.18.6/libsecret-Password-storage.php#secret-password-free Fixes #793
2 parents bb3c305 + b7f2c83 commit 21b1c38

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

src/shared/Core/Interop/Linux/SecretServiceCollection.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,6 @@ private static unsafe ICredential CreateCredentialFromItem(SecretItem* item)
291291
if (accountKeyPtr != IntPtr.Zero) Marshal.FreeHGlobal(accountKeyPtr);
292292
if (serviceKeyPtr != IntPtr.Zero) Marshal.FreeHGlobal(serviceKeyPtr);
293293
if (value != null) secret_value_unref(value);
294-
if (passwordPtr != IntPtr.Zero) secret_password_free(passwordPtr);
295294
if (error != null) g_error_free(error);
296295
}
297296
}

0 commit comments

Comments
 (0)