[PATCH] alternate object store and fsck

The location alt_odb[j].name[0..] is filled with ??/?{38} to form a sha1
filename to try, but I was too lazy to allocate a copy, so while
fsck_object_dir() is running for the directory, the filenames ??/?{38}
are filled after NUL (usually and always the location should have '/'),
making them "not found".

This should fix it.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff --git a/fsck-cache.c b/fsck-cache.c
index 48be655..8e21bf1 100644
--- a/fsck-cache.c
+++ b/fsck-cache.c
@@ -416,9 +416,11 @@
 		struct packed_git *p;
 		prepare_alt_odb();
 		for (j = 0; alt_odb[j].base; j++) {
-			alt_odb[j].name[-1] = 0; /* was slash */
-			fsck_object_dir(alt_odb[j].base);
-			alt_odb[j].name[-1] = '/';
+			char namebuf[PATH_MAX];
+			int namelen = alt_odb[j].name - alt_odb[j].base;
+			memcpy(namebuf, alt_odb[j].base, namelen);
+			namebuf[namelen - 1] = 0;
+			fsck_object_dir(namebuf);
 		}
 		prepare_packed_git();
 		for (p = packed_git; p; p = p->next)