hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
From d05ba5335e869bcd68c0def795c55fd5037914e3 Mon Sep 17 00:00:00 2001
From: Petr Vorel <petr.vorel () gmail ! com>
Date: Thu, 22 Jul 2021 16:15:44 +0000
Subject: [PATCH] nfsdcltrack/sqlite: Fix printf format
 
sqlite.c: In function 'sqlite_remove_unreclaimed':
sqlite.c:547:71: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Werror=format=]
  547 |  ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld",
      |                                                                     ~~^
      |                                                                       |
      |                                                                       long int
      |                                                                     %lld
  548 |    grace_start);
      |    ~~~~~~~~~~~
      |    |
      |    time_t {aka long long int}
 
Found in Buildroot riscv32 build.
 
Link: http://autobuild.buildroot.net/results/9bc1d43a588338b7395af7bc97535ee16a6ea2d9/build-end.log
 
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Upstream: http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=4f2a5b64386600430ec6b71e57b88c5efaa70aed
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
 utils/nfsdcltrack/sqlite.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
 
diff --git a/utils/nfsdcltrack/sqlite.c b/utils/nfsdcltrack/sqlite.c
index f79aebb3..cea4a411 100644
--- a/utils/nfsdcltrack/sqlite.c
+++ b/utils/nfsdcltrack/sqlite.c
@@ -46,6 +46,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <fcntl.h>
+#include <inttypes.h>
 #include <unistd.h>
 #include <sqlite3.h>
 #include <linux/limits.h>
@@ -544,7 +545,7 @@ sqlite_remove_unreclaimed(time_t grace_start)
     int ret;
     char *err = NULL;
 
-    ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %ld",
+    ret = snprintf(buf, sizeof(buf), "DELETE FROM clients WHERE time < %"PRIu64,
             grace_start);
     if (ret < 0) {
         return ret;
-- 
2.25.1