aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-11-26 10:32:42 -0800
committerJunio C Hamano <gitster@pobox.com>2025-11-26 10:32:42 -0800
commite539545396d99a18835f0b1c09172082389bc9b5 (patch)
tree94e3a6b4b5dc478c0ee6550b186b80e304c4bf0a
parent35eaf96addb428fa22913f1091782a4002adfd61 (diff)
parentd22a488482092da64ad19fda82edde199bed2466 (diff)
downloadgit-e539545396d99a18835f0b1c09172082389bc9b5.tar.xz
Merge branch 'js/wincred-get-credential-alloc-fix'
Under-allocation fix. * js/wincred-get-credential-alloc-fix: wincred: avoid memory corruption
-rw-r--r--contrib/credential/wincred/git-credential-wincred.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/credential/wincred/git-credential-wincred.c b/contrib/credential/wincred/git-credential-wincred.c
index 5683846b4b..73c2b9b72a 100644
--- a/contrib/credential/wincred/git-credential-wincred.c
+++ b/contrib/credential/wincred/git-credential-wincred.c
@@ -165,7 +165,7 @@ static void get_credential(void)
write_item("username", creds[i]->UserName,
creds[i]->UserName ? wcslen(creds[i]->UserName) : 0);
if (creds[i]->CredentialBlobSize > 0) {
- secret = xmalloc(creds[i]->CredentialBlobSize);
+ secret = xmalloc(creds[i]->CredentialBlobSize + sizeof(WCHAR));
wcsncpy_s(secret, creds[i]->CredentialBlobSize, (LPCWSTR)creds[i]->CredentialBlob, creds[i]->CredentialBlobSize / sizeof(WCHAR));
line = wcstok_s(secret, L"\r\n", &remaining_lines);
write_item("password", line, line ? wcslen(line) : 0);