Code

Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Tue, 11 Oct 2011 19:25:32 +0000 (14:25 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 11 Oct 2011 20:46:20 +0000 (13:46 -0700)
commit3ac64370164fb80e92c3c9136210d3a49f1e01fa
tree41cc88a799c920e51cdeced8a5d07ce79a3dda60
parent0c80fdb34200648f18cf19af1514c693d2f141b8
Fix is_gitfile() for files too small or larger than PATH_MAX to be a gitfile

The logic to check whether a file is a gitfile used the heuristics that
a gitfile cannot be larger than PATH_MAX or smaller than 10 bytes (as
its contents is "gitdir: " followed by a path) and returned early.

But it returned with a wrong value. It should have said "this cannot
possibly be a gitfile" by returning 0, but it returned 1 instead.  Our
test cases do not cover this, as the bundle files produced are smaller
than PATH_MAX, except on Windows.

While at it, fix the faulty logic that the path stored in a gitfile cannot
be larger than PATH_MAX-sizeof("gitdir: ").

Problem identified by running the test suite in msysGit, offending commit
identified by Jörg Rosenkranz.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport.c