summaryrefslogtreecommitdiff
path: root/entry.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2006-01-27 14:46:10 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2006-01-27 14:46:10 -0800
commitca182053c7710a286d72102f4576cf32e0dafcfb (patch)
treeda5fa4e546de09e267cdfb3f6f1a867b8a860048 /entry.c
parentGIT 1.0.12 (diff)
parentcheckout: do not make a temporary copy of symlink target. (diff)
downloadtgif-ca182053c7710a286d72102f4576cf32e0dafcfb.tar.xz
GIT 1.0.13
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'entry.c')
-rw-r--r--entry.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/entry.c b/entry.c
index 410b758aab..6c47c3a3e1 100644
--- a/entry.c
+++ b/entry.c
@@ -70,7 +70,6 @@ static int write_entry(struct cache_entry *ce, const char *path, struct checkout
unsigned long size;
long wrote;
char type[20];
- char target[1024];
new = read_sha1_file(ce->sha1, type, &size);
if (!new || strcmp(type, "blob")) {
@@ -94,12 +93,10 @@ static int write_entry(struct cache_entry *ce, const char *path, struct checkout
return error("git-checkout-index: unable to write file %s", path);
break;
case S_IFLNK:
- memcpy(target, new, size);
- target[size] = '\0';
- if (symlink(target, path)) {
+ if (symlink(new, path)) {
free(new);
- return error("git-checkout-index: unable to create symlink %s (%s)",
- path, strerror(errno));
+ return error("git-checkout-index: unable to create "
+ "symlink %s (%s)", path, strerror(errno));
}
free(new);
break;