Staging
v0.5.2
v0.5.2
https://github.com/git/git
Revision d3ac8c3f27a507d0489d18b51d6deba6364a99ce authored by Johannes Schindelin on 04 December 2019, 20:26:31 UTC, committed by Johannes Schindelin on 06 December 2019, 15:26:55 UTC
* maint-2.14: (28 commits) Git 2.14.6 mingw: handle `subst`-ed "DOS drives" mingw: refuse to access paths with trailing spaces or periods mingw: refuse to access paths with illegal characters unpack-trees: let merged_entry() pass through do_add_entry()'s errors quote-stress-test: offer to test quoting arguments for MSYS2 sh t6130/t9350: prepare for stringent Win32 path validation quote-stress-test: allow skipping some trials quote-stress-test: accept arguments to test via the command-line tests: add a helper to stress test argument quoting mingw: fix quoting of arguments Disallow dubiously-nested submodule git directories protect_ntfs: turn on NTFS protection by default path: also guard `.gitmodules` against NTFS Alternate Data Streams is_ntfs_dotgit(): speed it up mingw: disallow backslash characters in tree objects' file names path: safeguard `.git` against NTFS Alternate Streams Accesses clone --recurse-submodules: prevent name squatting on Windows is_ntfs_dotgit(): only verify the leading segment test-path-utils: offer to run a protectNTFS/protectHFS benchmark ...
Tip revision: d3ac8c3f27a507d0489d18b51d6deba6364a99ce authored by Johannes Schindelin on 04 December 2019, 20:26:31 UTC
Sync with 2.14.6
Sync with 2.14.6
Tip revision: d3ac8c3
sha1dc_git.c
#include "cache.h"
#ifdef DC_SHA1_EXTERNAL
/*
* Same as SHA1DCInit, but with default save_hash=0
*/
void git_SHA1DCInit(SHA1_CTX *ctx)
{
SHA1DCInit(ctx);
SHA1DCSetSafeHash(ctx, 0);
}
#endif
/*
* Same as SHA1DCFinal, but convert collision attack case into a verbose die().
*/
void git_SHA1DCFinal(unsigned char hash[20], SHA1_CTX *ctx)
{
if (!SHA1DCFinal(hash, ctx))
return;
die("SHA-1 appears to be part of a collision attack: %s",
sha1_to_hex(hash));
}
/*
* Same as SHA1DCUpdate, but adjust types to match git's usual interface.
*/
void git_SHA1DCUpdate(SHA1_CTX *ctx, const void *vdata, unsigned long len)
{
const char *data = vdata;
/* We expect an unsigned long, but sha1dc only takes an int */
while (len > INT_MAX) {
SHA1DCUpdate(ctx, data, INT_MAX);
data += INT_MAX;
len -= INT_MAX;
}
SHA1DCUpdate(ctx, data, len);
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...