From a6c53d51de3601058d990d2f2d99649760cd3029 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 15 Apr 2011 18:55:30 +0200 Subject: [PATCH] scp: More correct fix for snprintf 64-bit format. --- include/libssh/priv.h | 8 ++++++++ src/scp.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/libssh/priv.h b/include/libssh/priv.h index 4dbc4450..de965f51 100644 --- a/include/libssh/priv.h +++ b/include/libssh/priv.h @@ -39,6 +39,14 @@ # define PRIdS "Id" # endif +# ifndef PRIu64 +# if __WORDSIZE == 64 +# define PRIu64 "lu" +# else +# define PRIu64 "llu" +# endif /* __WORDSIZE */ +# endif /* PRIu64 */ + # ifdef _MSC_VER # include diff --git a/src/scp.c b/src/scp.c index 0cebf8d6..8a38c873 100644 --- a/src/scp.c +++ b/src/scp.c @@ -293,8 +293,8 @@ int ssh_scp_push_file64(ssh_scp scp, const char *filename, uint64_t size, int mo } file=ssh_basename(filename); perms=ssh_scp_string_mode(mode); - ssh_log(scp->session,SSH_LOG_PROTOCOL,"SCP pushing file %s, size %llu with permissions '%s'",file,size,perms); - snprintf(buffer, sizeof(buffer), "C%s %llu %s\n", perms, size, file); + ssh_log(scp->session,SSH_LOG_PROTOCOL,"SCP pushing file %s, size %" PRIu64 " with permissions '%s'",file,size,perms); + snprintf(buffer, sizeof(buffer), "C%s %" PRIu64 " %s\n", perms, size, file); SAFE_FREE(file); SAFE_FREE(perms); r=ssh_channel_write(scp->channel,buffer,strlen(buffer));