зеркало из https://github.com/microsoft/git.git
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 <apw@shadowen.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
825b045f52
Коммит
c41e20b30b
|
@ -17,7 +17,7 @@ static int check_ref(const char *name, int len, unsigned int flags)
|
||||||
if (!flags)
|
if (!flags)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (len > 45 || memcmp(name, "refs/", 5))
|
if (len < 5 || memcmp(name, "refs/", 5))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Skip the "refs/" part */
|
/* Skip the "refs/" part */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче