read_info_alternates: handle paths larger than PATH_MAX
authorJeff King <peff@peff.net>
Wed, 19 Aug 2015 18:12:45 +0000 (14:12 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 4 Sep 2015 16:36:51 +0000 (09:36 -0700)
commit5015f01c12a45a1042c1aa6b6f7f6b62bfa00ade
tree755efbbdd95dc999a763d163d4627570a678f7b1
parentc29edfefb6f6a3fef80172c16bcc34c826d417b0
read_info_alternates: handle paths larger than PATH_MAX

This function assumes that the relative_base path passed
into it is no larger than PATH_MAX, and writes into a
fixed-size buffer. However, this path may not have actually
come from the filesystem; for example, add_submodule_odb
generates a path using a strbuf and passes it in. This is
hard to trigger in practice, though, because the long
submodule directory would have to exist on disk before we
would try to open its info/alternates file.

We can easily avoid the bug, though, by simply creating the
filename on the heap.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_file.c