Staging
v0.5.1
https://github.com/git/git
Revision 8977c110b5bbd230c28c727ddb85856067d55cfb authored by Junio C Hamano on 04 January 2007, 07:09:08 UTC, committed by Junio C Hamano on 05 January 2007, 06:17:59 UTC
Running the SHA1_Update() on the whole packfile in a single call
revealed an overflow problem we had in the SHA-1 implementation
on POWER architecture some time ago, which was fixed with commit
b47f509b (June 19, 2006).  Other SHA-1 implementations may have
a similar problem.

The sliding mmap() series already makes chunked calls to
SHA1_Update(), so this patch itself will become moot when it
graduates to "master", but in the meantime, run the hash
function in smaller chunks to prevent possible future problems.

Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent 1084b84
Raw File
Tip revision: 8977c110b5bbd230c28c727ddb85856067d55cfb authored by Junio C Hamano on 04 January 2007, 07:09:08 UTC
pack-check.c::verify_packfile(): don't run SHA-1 update on huge data
Tip revision: 8977c11
GIT-VERSION-GEN
#!/bin/sh

GVF=GIT-VERSION-FILE
DEF_VER=v1.4.4.3.GIT

LF='
'

# First try git-describe, then see if there is a version file
# (included in release tarballs), then default
if VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
   case "$VN" in
   *$LF*) (exit 1) ;;
   v[0-9]*) : happy ;;
   esac
then
	VN=$(echo "$VN" | sed -e 's/-/./g');
elif test -f version
then
	VN=$(cat version) || VN="$DEF_VER"
else
	VN="$DEF_VER"
fi

VN=$(expr "$VN" : v*'\(.*\)')

dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
case "$dirty" in
'')
	;;
*)
	VN="$VN-dirty" ;;
esac

if test -r $GVF
then
	VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
else
	VC=unset
fi
test "$VN" = "$VC" || {
	echo >&2 "GIT_VERSION = $VN"
	echo "GIT_VERSION = $VN" >$GVF
}


back to top