signed/unsigned comparison warning fix; from portable
authordjm <djm@openbsd.org>
Fri, 17 Jan 2014 00:21:06 +0000 (00:21 +0000)
committerdjm <djm@openbsd.org>
Fri, 17 Jan 2014 00:21:06 +0000 (00:21 +0000)
usr.bin/ssh/sftp-client.c

index fc6880d..e69f7fe 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp-client.c,v 1.112 2014/01/16 07:31:09 djm Exp $ */
+/* $OpenBSD: sftp-client.c,v 1.113 2014/01/17 00:21:06 djm Exp $ */
 /*
  * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
  *
@@ -1097,7 +1097,11 @@ do_download(struct sftp_conn *conn, char *remote_path, char *local_path,
                            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: