2020-04-04 02:23:38

by Rosen Penev

[permalink] [raw]
Subject: [PATCH] nfs-utils: print time in 64-bit

musl 1.2.0 defines time_t as 64-bit, even under 32-bit OSes.

Fixes -Wformat errors.

Signed-off-by: Rosen Penev <[email protected]>
---
support/nfs/cacheio.c | 2 +-
utils/idmapd/idmapd.c | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
index 7c4cf373..5e47078c 100644
--- a/support/nfs/cacheio.c
+++ b/support/nfs/cacheio.c
@@ -238,7 +238,7 @@ cache_flush(int force)
stb.st_mtime > now)
stb.st_mtime = time(0);

- sprintf(stime, "%ld\n", stb.st_mtime);
+ sprintf(stime, "%" PRId64 "\n", (int64_t)stb.st_mtime);
for (c=0; cachelist[c]; c++) {
int fd;
sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]);
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
index c187e7d7..fe62e2b5 100644
--- a/utils/idmapd/idmapd.c
+++ b/utils/idmapd/idmapd.c
@@ -172,7 +172,7 @@ flush_nfsd_cache(char *path, time_t now)
int fd;
char stime[32];

- sprintf(stime, "%ld\n", now);
+ sprintf(stime, "%" PRId64 "\n", (int64_t)now);
fd = open(path, O_RDWR);
if (fd == -1)
return -1;
@@ -625,8 +625,8 @@ nfsdcb(int UNUSED(fd), short which, void *data)
/* Name */
addfield(&bp, &bsiz, im.im_name);
/* expiry */
- snprintf(buf1, sizeof(buf1), "%lu",
- time(NULL) + cache_entry_expiration);
+ snprintf(buf1, sizeof(buf1), "%" PRId64,
+ (int64_t)time(NULL) + cache_entry_expiration);
addfield(&bp, &bsiz, buf1);
/* Note that we don't want to write the id if the mapping
* failed; instead, by leaving it off, we write a negative
@@ -653,8 +653,8 @@ nfsdcb(int UNUSED(fd), short which, void *data)
snprintf(buf1, sizeof(buf1), "%u", im.im_id);
addfield(&bp, &bsiz, buf1);
/* expiry */
- snprintf(buf1, sizeof(buf1), "%lu",
- time(NULL) + cache_entry_expiration);
+ snprintf(buf1, sizeof(buf1), "%" PRId64,
+ (int64_t)time(NULL) + cache_entry_expiration);
addfield(&bp, &bsiz, buf1);
/* Note we're ignoring the status field in this case; we'll
* just map to nobody instead. */
--
2.25.1