Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
copy.c: copy_fd - correctly report write errors
author
Ariel Badichi
<abadichi@bezeqint.net>
Wed, 23 Apr 2008 01:05:29 +0000
(
04:05
+0300)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 23 Apr 2008 04:21:08 +0000
(21:21 -0700)
Previously, the errno could have been lost due to an intervening
close() call.
This patch also contains minor cosmetic changes.
Signed-off-by: Ariel Badichi <abadichi@bezeqint.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
copy.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
82881b3
)
diff --git
a/copy.c
b/copy.c
index afc4fbf41405d42d2751ea35ec7a9a32f8df6274..e54d15aced7595ccb11423b0de121db9051ad1f3 100644
(file)
--- a/
copy.c
+++ b/
copy.c
@@
-9,8
+9,7
@@
int copy_fd(int ifd, int ofd)
if (!len)
break;
if (len < 0) {
if (!len)
break;
if (len < 0) {
- int read_error;
- read_error = errno;
+ int read_error = errno;
close(ifd);
return error("copy-fd: read returned %s",
strerror(read_error));
close(ifd);
return error("copy-fd: read returned %s",
strerror(read_error));
@@
-25,9
+24,10
@@
int copy_fd(int ifd, int ofd)
close(ifd);
return error("copy-fd: write returned 0");
} else {
close(ifd);
return error("copy-fd: write returned 0");
} else {
+ int write_error = errno;
close(ifd);
return error("copy-fd: write returned %s",
close(ifd);
return error("copy-fd: write returned %s",
- strerror(
errno
));
+ strerror(
write_error
));
}
}
}
}
}
}
@@
-48,7
+48,7
@@
int copy_file(const char *dst, const char *src, int mode)
}
status = copy_fd(fdi, fdo);
if (close(fdo) != 0)
}
status = copy_fd(fdi, fdo);
if (close(fdo) != 0)
- return error("%s:
writ
e error: %s", dst, strerror(errno));
+ return error("%s:
clos
e error: %s", dst, strerror(errno));
if (!status && adjust_shared_perm(dst))
return -1;
if (!status && adjust_shared_perm(dst))
return -1;