Skip to content

Commit

Permalink
make_absolute_path: return the input path if it points to our buffer
Browse files Browse the repository at this point in the history
Some codepaths call make_absolute_path with its own return value as
input. In such a cases, return the path immediately.

This fixes a valgrind-discovered error, whereby we tried to copy a
string onto itself.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Carlos Martín Nieto authored and Junio C Hamano committed Mar 16, 2011
1 parent b406a2d commit 1d679de
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions abspath.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ const char *make_absolute_path(const char *path)
char *last_elem = NULL;
struct stat st;

/* We've already done it */
if (path == buf || path == next_buf)
return path;

if (strlcpy(buf, path, PATH_MAX) >= PATH_MAX)
die ("Too long path: %.*s", 60, path);

Expand Down

0 comments on commit 1d679de

Please sign in to comment.