=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sftp-client.c,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- src/usr.bin/ssh/sftp-client.c 2007/01/22 11:32:50 1.76 +++ src/usr.bin/ssh/sftp-client.c 2007/09/16 00:55:52 1.77 @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.76 2007/01/22 11:32:50 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.77 2007/09/16 00:55:52 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -984,7 +984,7 @@ { int local_fd, status; u_int handle_len, id, type; - u_int64_t offset; + off_t offset; char *handle, *data; Buffer msg; struct stat sb; @@ -994,7 +994,7 @@ struct outstanding_ack { u_int id; u_int len; - u_int64_t offset; + off_t offset; TAILQ_ENTRY(outstanding_ack) tq; }; TAILQ_HEAD(ackhead, outstanding_ack) acks; @@ -1133,12 +1133,14 @@ status = -1; goto done; } - debug3("In write loop, ack for %u %u bytes at %llu", - ack->id, ack->len, (unsigned long long)ack->offset); + debug3("In write loop, ack for %u %u bytes at %lld", + ack->id, ack->len, (long long)ack->offset); ++ackid; xfree(ack); } offset += len; + if (offset < 0) + fatal("%s: offset < 0", __func__); } if (showprogress) stop_progress_meter();