path: root/connect.c
diff options
authorAndy Whitcroft <>2006-09-05 19:00:17 (GMT)
committerJunio C Hamano <>2006-09-06 00:40:46 (GMT)
commitc41e20b30b2bd4b8167917336676cde6f6aadd06 (patch)
tree14cfbfde32feb0491aeae8f23b301dfaee2dc890 /connect.c
parent825b045f52daa2c8f28370f30c759adbdec51cbb (diff)
send-pack: remove remote reference limit
When build a pack for a push we query the remote copy for existant heads. These are used to prune unnecessary objects from the pack. As we receive the remote references in get_remote_heads() we validate the reference names via check_ref() which includes a length check; rejecting those >45 characters in size. This is a miss converted change, it was originally designed to reject messages which were less than 45 characters in length (a 40 character sha1 and refs/) to prevent comparing unitialised memory. check_ref() now gets the raw length so check for at least 5 characters. Signed-off-by: Andy Whitcroft <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'connect.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/connect.c b/connect.c
index 06ef387..1c6429b 100644
--- a/connect.c
+++ b/connect.c
@@ -17,7 +17,7 @@ static int check_ref(const char *name, int len, unsigned int flags)
if (!flags)
return 1;
- if (len > 45 || memcmp(name, "refs/", 5))
+ if (len < 5 || memcmp(name, "refs/", 5))
return 0;
/* Skip the "refs/" part */