- (djm) [sftp-client.c] signed/unsigned comparison fix
diff --git a/ChangeLog b/ChangeLog
index 880763a..ada012f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
hardening flags including -fstack-protector-strong. These default to on
if the toolchain supports them, but there is a configure-time knob
(--without-hardening) to disable them if necessary. ok djm@
+ - (djm) [sftp-client.c] signed/unsigned comparison fix
20140118
- (djm) OpenBSD CVS Sync
diff --git a/sftp-client.c b/sftp-client.c
index cb4e0c4..e3c6308 100644
--- a/sftp-client.c
+++ b/sftp-client.c
@@ -1104,7 +1104,11 @@
local_path, strerror(errno));
goto fail;
}
- if (st.st_size > size) {
+ if (st.st_size < 0) {
+ error("\"%s\" has negative size", local_path);
+ goto fail;
+ }
+ if ((u_int64_t)st.st_size > size) {
error("Unable to resume download of \"%s\": "
"local file is larger than remote", local_path);
fail: