Some compilers won't cast, eg, int* to unsigned long long* and progressmeter mixes off_t and u_int64_t which causes problems for them. off_t can vary depending on many things including platform and large file support, but the u_int64_t is specified by the sftp protocol.
Created attachment 604 [details] use u_int64_t for progressmeter
Is this still relevant? What compile warnings do you see?
The error is: sftp-client.c:1051: cannot cast 'unsigned long long *' to 'int *' The line in question is: start_progress_meter(local_path, sb.st_size, &offset); "offset" is u_int64_t, the 3rd arg of start_progress_meter is off_t. Since off_t is usually signed, it's also a potential signed/unsigned issue.
Created attachment 1287 [details] make sftp use off_t Perhaps it would be better for sftp to use an off_t here? I don't think the OS would support files with OFF_T_MAX < size <= UINT64_MAX anyway
(In reply to comment #4) > Perhaps it would be better for sftp to use an off_t here? I don't think > the OS would support files with OFF_T_MAX < size <= UINT64_MAX anyway This seems reasonable to me. The progressmeter code doesn't seem like it would care much if it wrapped anyway, other than producing bogus stats.
Fix shipped in 4.9/4.9p1 release.