diff options
Diffstat (limited to 'scp.c')
-rw-r--r-- | scp.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -554,9 +554,16 @@ syserr: run_err("%s: %s", name, strerror(errno)); | |||
554 | goto next; | 554 | goto next; |
555 | } | 555 | } |
556 | #define FILEMODEMASK (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) | 556 | #define FILEMODEMASK (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) |
557 | #ifdef HAVE_LONG_LONG_INT | ||
557 | snprintf(buf, sizeof buf, "C%04o %lld %s\n", | 558 | snprintf(buf, sizeof buf, "C%04o %lld %s\n", |
558 | (u_int) (stb.st_mode & FILEMODEMASK), | 559 | (u_int) (stb.st_mode & FILEMODEMASK), |
559 | (int64_t)stb.st_size, last); | 560 | (long long)stb.st_size, last); |
561 | #else | ||
562 | /* XXX: Handle integer overflow? */ | ||
563 | snprintf(buf, sizeof buf, "C%04o %lu %s\n", | ||
564 | (u_int) (stb.st_mode & FILEMODEMASK), | ||
565 | (u_long) stb.st_size, last); | ||
566 | #endif | ||
560 | if (verbose_mode) { | 567 | if (verbose_mode) { |
561 | fprintf(stderr, "Sending file modes: %s", buf); | 568 | fprintf(stderr, "Sending file modes: %s", buf); |
562 | } | 569 | } |