]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Fix uninitialized variable in Windows get_file_posn.
authorTim Kosse <tim.kosse@filezilla-project.org>
Tue, 3 May 2016 21:27:57 +0000 (23:27 +0200)
committerSimon Tatham <anakin@pobox.com>
Wed, 4 May 2016 05:24:26 +0000 (06:24 +0100)
The Windows implementation of get_file_posn is calling SetFilePointer
to obtain the current position in the file. However it did not
initialize the variable holding the high order 32-bit to 0. Thus,
SetFilePointer either returned -1 to indicate an error or did move the
file pointer to a different location instead of just returning the
current position. This change just initializes the variable to 0.

As a result, this bug has caused psftp's reget command to fail
resuming transfers or to create corrupt files due to setting up an
incorrect resume offset.

windows/winsftp.c

index 525f0bf25e0adb0c73dbd68237a2b6daa963bbe7..c786f7a65d686d65d165391674e878ed42fd7e91 100644 (file)
@@ -244,7 +244,7 @@ int seek_file(WFile *f, uint64 offset, int whence)
 uint64 get_file_posn(WFile *f)
 {
     uint64 ret;
-    LONG lo, hi;
+    LONG lo, hi = 0;
 
     lo = SetFilePointer(f->h, 0L, &hi, FILE_CURRENT);
     ret.lo = lo;