Fix time_t format strings
For time_t, long long handles dates after Y2038 and should be safe on 32-bit architectures. From Jeremie Courreges-Anglas <jca@openbsd.org>.
This commit is contained in:
parent
8a40554f07
commit
470210fa86
|
@ -1570,7 +1570,7 @@ maildir_store_msg( store_t *gctx, msg_data_t *data, int to_trash,
|
||||||
uint uid;
|
uint uid;
|
||||||
char buf[_POSIX_PATH_MAX], nbuf[_POSIX_PATH_MAX], fbuf[NUM_FLAGS + 3], base[128];
|
char buf[_POSIX_PATH_MAX], nbuf[_POSIX_PATH_MAX], fbuf[NUM_FLAGS + 3], base[128];
|
||||||
|
|
||||||
bl = nfsnprintf( base, sizeof(base), "%ld.%d_%d.%s", (long)time( 0 ), Pid, ++MaildirCount, Hostname );
|
bl = nfsnprintf( base, sizeof(base), "%lld.%d_%d.%s", (long long)time( 0 ), Pid, ++MaildirCount, Hostname );
|
||||||
if (!to_trash) {
|
if (!to_trash) {
|
||||||
#ifdef USE_DB
|
#ifdef USE_DB
|
||||||
if (ctx->usedb) {
|
if (ctx->usedb) {
|
||||||
|
@ -1751,8 +1751,8 @@ maildir_trash_msg( store_t *gctx, message_t *gmsg,
|
||||||
for (;;) {
|
for (;;) {
|
||||||
nfsnprintf( buf, sizeof(buf), "%s/%s/%s", ctx->path, subdirs[gmsg->status & M_RECENT], msg->base );
|
nfsnprintf( buf, sizeof(buf), "%s/%s/%s", ctx->path, subdirs[gmsg->status & M_RECENT], msg->base );
|
||||||
s = strstr( msg->base, ((maildir_store_conf_t *)gctx->conf)->info_prefix );
|
s = strstr( msg->base, ((maildir_store_conf_t *)gctx->conf)->info_prefix );
|
||||||
nfsnprintf( nbuf, sizeof(nbuf), "%s/%s/%ld.%d_%d.%s%s", ctx->trash,
|
nfsnprintf( nbuf, sizeof(nbuf), "%s/%s/%lld.%d_%d.%s%s", ctx->trash,
|
||||||
subdirs[gmsg->status & M_RECENT], (long)time( 0 ), Pid, ++MaildirCount, Hostname, s ? s : "" );
|
subdirs[gmsg->status & M_RECENT], (long long)time( 0 ), Pid, ++MaildirCount, Hostname, s ? s : "" );
|
||||||
if (!rename( buf, nbuf ))
|
if (!rename( buf, nbuf ))
|
||||||
break;
|
break;
|
||||||
if (!stat( buf, &st )) {
|
if (!stat( buf, &st )) {
|
||||||
|
|
|
@ -239,8 +239,8 @@ proxy_@name@( store_t *gctx@decl_args@, void (*cb)( @decl_cb_args@void *aux ), v
|
||||||
static char fbuf[as(Flags) + 1];
|
static char fbuf[as(Flags) + 1];
|
||||||
proxy_make_flags( cmd->data->flags, fbuf );
|
proxy_make_flags( cmd->data->flags, fbuf );
|
||||||
//# END
|
//# END
|
||||||
//# DEFINE fetch_msg_print_fmt_cb_args , flags=%s, date=%ld, size=%d
|
//# DEFINE fetch_msg_print_fmt_cb_args , flags=%s, date=%lld, size=%d
|
||||||
//# DEFINE fetch_msg_print_pass_cb_args , fbuf, cmd->data->date, cmd->data->len
|
//# DEFINE fetch_msg_print_pass_cb_args , fbuf, (long long)cmd->data->date, cmd->data->len
|
||||||
//# DEFINE fetch_msg_print_cb_args
|
//# DEFINE fetch_msg_print_cb_args
|
||||||
if (sts == DRV_OK && (DFlags & DEBUG_DRV_ALL)) {
|
if (sts == DRV_OK && (DFlags & DEBUG_DRV_ALL)) {
|
||||||
printf( "%s=========\n", cmd->gen.ctx->label );
|
printf( "%s=========\n", cmd->gen.ctx->label );
|
||||||
|
@ -254,8 +254,8 @@ proxy_@name@( store_t *gctx@decl_args@, void (*cb)( @decl_cb_args@void *aux ), v
|
||||||
static char fbuf[as(Flags) + 1];
|
static char fbuf[as(Flags) + 1];
|
||||||
proxy_make_flags( data->flags, fbuf );
|
proxy_make_flags( data->flags, fbuf );
|
||||||
//# END
|
//# END
|
||||||
//# DEFINE store_msg_print_fmt_args , flags=%s, date=%ld, size=%d, to_trash=%s
|
//# DEFINE store_msg_print_fmt_args , flags=%s, date=%lld, size=%d, to_trash=%s
|
||||||
//# DEFINE store_msg_print_pass_args , fbuf, data->date, data->len, to_trash ? "yes" : "no"
|
//# DEFINE store_msg_print_pass_args , fbuf, (long long)data->date, data->len, to_trash ? "yes" : "no"
|
||||||
//# DEFINE store_msg_print_args
|
//# DEFINE store_msg_print_args
|
||||||
if (DFlags & DEBUG_DRV_ALL) {
|
if (DFlags & DEBUG_DRV_ALL) {
|
||||||
printf( "%s>>>>>>>>>\n", ctx->label );
|
printf( "%s>>>>>>>>>\n", ctx->label );
|
||||||
|
|
Loading…
Reference in New Issue
Block a user