<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/contrib/credential, branch main</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=main</id>
<link rel='self' href='https://git.shady.money/git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2026-02-20T16:10:59Z</updated>
<entry>
<title>osxkeychain: define build targets in the top-level Makefile.</title>
<updated>2026-02-20T16:10:59Z</updated>
<author>
<name>Koji Nakamaru</name>
<email>koji.nakamaru@gree.net</email>
</author>
<published>2026-02-20T01:39:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3e9cc24e68ef311500406ef4d170be30e36e1231'/>
<id>urn:sha1:3e9cc24e68ef311500406ef4d170be30e36e1231</id>
<content type='text'>
The fix for git-credential-osxkeychain in 4580bcd235 (osxkeychain: avoid
incorrectly skipping store operation, 2025-11-14) introduced linkage
with libgit.a, and its Makefile was adjusted accordingly. However, the
build fails as of 864f55e190 because several macOS-specific refinements
were applied to the top-level Makefile and config.mak.uname, such as:

  - 363837afe7 (macOS: make Homebrew use configurable, 2025-12-24)
  - cee341e9dd (macOS: use iconv from Homebrew if needed and present,
    2025-12-24)
  - d281241518 (utf8.c: enable workaround for iconv under macOS 14/15,
    2026-01-12)

Since libgit.a and its corresponding header files depend on many flags
defined in the top-level Makefile, these flags must be consistently
defined when building git-credential-osxkeychain. Continuing to manually
adjust the git-credential-osxkeychain Makefile is cumbersome and
fragile.

Define the build targets for git-credential-osxkeychain in the top-level
Makefile and modify its local Makefile to simply rely on those targets.

Helped-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Reported-by: D. Ben Knoble &lt;ben.knoble@gmail.com&gt;
Helped-by: Kristoffer Haugsbakk &lt;kristofferhaugsbakk@fastmail.com&gt;
Signed-off-by: Koji Nakamaru &lt;koji.nakamaru@gree.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'js/wincred-get-credential-alloc-fix'</title>
<updated>2025-11-26T18:32:42Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-11-26T18:32:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e539545396d99a18835f0b1c09172082389bc9b5'/>
<id>urn:sha1:e539545396d99a18835f0b1c09172082389bc9b5</id>
<content type='text'>
Under-allocation fix.

* js/wincred-get-credential-alloc-fix:
  wincred: avoid memory corruption
</content>
</entry>
<entry>
<title>wincred: avoid memory corruption</title>
<updated>2025-11-17T22:17:42Z</updated>
<author>
<name>David Macek</name>
<email>david.macek.0@gmail.com</email>
</author>
<published>2025-11-17T20:39:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d22a488482092da64ad19fda82edde199bed2466'/>
<id>urn:sha1:d22a488482092da64ad19fda82edde199bed2466</id>
<content type='text'>
`wcsncpy_s()` wants to write the terminating null character so we need
to allocate one more space for it in the target memory block.

This should fix crashes when trying to read passwords.  When this
happened, the password/token wouldn't print out and Git would therefore
ask for a new password every time.

Signed-off-by: David Macek &lt;david.macek.0@gmail.com&gt;
Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>osxkeychain: avoid incorrectly skipping store operation</title>
<updated>2025-11-14T16:47:54Z</updated>
<author>
<name>Koji Nakamaru</name>
<email>koji.nakamaru@gree.net</email>
</author>
<published>2025-11-14T06:04:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4580bcd2354aab9369164d936f7ccaa21fc98c98'/>
<id>urn:sha1:4580bcd2354aab9369164d936f7ccaa21fc98c98</id>
<content type='text'>
git-credential-osxkeychain skips storing a credential if its "get"
action sets "state[]=osxkeychain:seen=1". This behavior was introduced
in e1ab45b2 (osxkeychain: state to skip unnecessary store operations,
2024-05-15), which appeared in v2.46.

However, this state[] persists even if a credential returned by
"git-credential-osxkeychain get" is invalid and a subsequent helper's
"get" operation returns a valid credential. Another subsequent helper
(such as [1]) may expect git-credential-osxkeychain to store the valid
credential, but the "store" operation is incorrectly skipped because it
only checks "state[]=osxkeychain:seen=1".

To solve this issue, "state[]=osxkeychain:seen" needs to contain enough
information to identify whether the current "store" input matches the
output from the previous "get" operation (and not a credential from
another helper).

Set "state[]=osxkeychain:seen" to a value encoding the credential output
by "get", and compare it with a value encoding the credential input by
"store".

[1]: https://github.com/hickford/git-credential-oauth

Reported-by: Petter Sælen &lt;petter@saelen.eu&gt;
Helped-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Helped-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Koji Nakamaru &lt;koji.nakamaru@gree.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>wincred: align Makefile with other Makefiles in contrib</title>
<updated>2025-11-06T17:56:30Z</updated>
<author>
<name>Thomas Uhle</name>
<email>thomas.uhle@mailbox.tu-dresden.de</email>
</author>
<published>2025-11-05T19:55:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fade8f074e52f491808da93e4782376969309a17'/>
<id>urn:sha1:fade8f074e52f491808da93e4782376969309a17</id>
<content type='text'>
* Replace $(LOADLIBES) because it is deprecated since long and it is
  used nowhere else in the git project.
* Use $(gitexecdir) instead of $(libexecdir) because config.mak defines
  $(libexecdir) as $(prefix)/libexec, not as $(prefix)/libexec/git-core.
* Similar to other Makefiles, let install target rule create
  $(gitexecdir) to make sure the directory exists before copying the
  executable and also let it respect $(DESTDIR).
* Shuffle the lines for the default settings to align them with the
  other Makefiles in contrib/credential.
* Define .PHONY for all special targets (all, install, clean).

Signed-off-by: Thomas Uhle &lt;thomas.uhle@mailbox.tu-dresden.de&gt;
Acked-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/credential: add install target</title>
<updated>2025-10-26T01:27:56Z</updated>
<author>
<name>Thomas Uhle</name>
<email>thomas.uhle@mailbox.tu-dresden.de</email>
</author>
<published>2025-10-25T20:30:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=595be20d22401538534197430cdee6b26f67533e'/>
<id>urn:sha1:595be20d22401538534197430cdee6b26f67533e</id>
<content type='text'>
Add an install target rule to the Makefiles in contrib/credential in the
same manner as in other Makefiles in contrib such as for contacts or
subtree.

Signed-off-by: Thomas Uhle &lt;thomas.uhle@mailbox.tu-dresden.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>contrib/credential: harmonize Makefiles</title>
<updated>2025-10-20T19:34:57Z</updated>
<author>
<name>Thomas Uhle</name>
<email>thomas.uhle@mailbox.tu-dresden.de</email>
</author>
<published>2025-10-20T18:20:22Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9b8ff6dc9ac876cc6d0c8eb68bdcf944e844e4c1'/>
<id>urn:sha1:9b8ff6dc9ac876cc6d0c8eb68bdcf944e844e4c1</id>
<content type='text'>
Update these Makefiles to be in line with other Makefiles from contrib
such as for contacts or subtree by making the following changes:

* Make the default settings after including config.mak.autogen and
  config.mak.
* Add the missing $(CPPFLAGS) to the compiler command as well as the
  missing $(CFLAGS) to the linker command.
* Use a pattern rule for compilation instead of a dedicated rule for
  each compile unit.
* Get rid of $(MAIN), $(SRCS) and $(OBJS) and simply use their values
  such as git-credential-libsecret and git-credential-libsecret.o.
* Strip @ from $(RM) to let the clean target rule be verbose.
* Define .PHONY for all special targets (all, clean).

Signed-off-by: Thomas Uhle &lt;thomas.uhle@mailbox.tu-dresden.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'mc/netrc-service-names'</title>
<updated>2025-07-14T18:19:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-07-14T18:19:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=db4a912c4ab822d494ba0a1695d6a0e731dde0ca'/>
<id>urn:sha1:db4a912c4ab822d494ba0a1695d6a0e731dde0ca</id>
<content type='text'>
"netrc" credential helper has been improved to understand textual
service names (like smtp) in addition to the numeric port numbers
(like 25).

* mc/netrc-service-names:
  contrib: better support symbolic port names in git-credential-netrc
  contrib: warn for invalid netrc file ports in git-credential-netrc
  contrib: use a more portable shebang for git-credential-netrc
</content>
</entry>
<entry>
<title>Sync with Git 2.50.1</title>
<updated>2025-07-07T22:08:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-07-07T22:08:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=038143def708a65455172a87432aee27da2d80c4'/>
<id>urn:sha1:038143def708a65455172a87432aee27da2d80c4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>contrib: better support symbolic port names in git-credential-netrc</title>
<updated>2025-06-25T16:43:59Z</updated>
<author>
<name>Maxim Cournoyer</name>
<email>maxim@guixotic.coop</email>
</author>
<published>2025-06-25T14:25:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1926d9b6dac2cc7584362fb9275b55c2904891d3'/>
<id>urn:sha1:1926d9b6dac2cc7584362fb9275b55c2904891d3</id>
<content type='text'>
To improve support for symbolic port names in netrc files, this
changes does the following:

 - Treat symbolic port names as ports, not protocols in git-credential-netrc
 - Validate the SMTP server port provided to send-email
 - Convert the above symbolic port names to their numerical values.

Before this change, it was not possible to have a SMTP server port set
to "smtps" in a netrc file (e.g. Emacs' ~/.authinfo.gpg), as it would
be registered as a protocol and break the match for a "smtp" protocol
host, as queried for by git-send-email.

Signed-off-by: Maxim Cournoyer &lt;maxim@guixotic.coop&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
