2018-12-01 18:16:33

by Khem Raj

[permalink] [raw]
Subject: [PATCH] cacheio: use intmax_t for formatted IO

time_t is not same size on x32 ABI (ILP32)

Signed-off-by: Khem Raj <[email protected]>
---
support/nfs/cacheio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
index 9dc4cf1..2086a95 100644
--- a/support/nfs/cacheio.c
+++ b/support/nfs/cacheio.c
@@ -17,6 +17,7 @@

#include <nfslib.h>
#include <stdio.h>
+#include <inttypes.h>
#include <stdio_ext.h>
#include <string.h>
#include <ctype.h>
@@ -234,7 +235,7 @@ cache_flush(int force)
stb.st_mtime > now)
stb.st_mtime = time(0);

- sprintf(stime, "%ld\n", stb.st_mtime);
+ sprintf(stime, "%jd\n", (intmax_t)stb.st_mtime);
for (c=0; cachelist[c]; c++) {
int fd;
sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]);
--
2.19.2



2018-12-01 18:16:34

by Khem Raj

[permalink] [raw]
Subject: [PATCH] Do not pass null pointer to freeaddrinfo()

Passing null pointer as input parameter to freeaddrinfo() is undefined
behaviour, some libcs e.g. glibc might just call free() which does
accept null pointer but other libcs e.g. musl might not and instead
cause the program to segfault. Therefore do not rely on undefined
behaviour instead make it deterministic

Signed-off-by: Khem Raj <[email protected]>
---
support/export/client.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: nfs-utils-2.3.2/support/export/client.c
===================================================================
--- nfs-utils-2.3.2.orig/support/export/client.c
+++ nfs-utils-2.3.2/support/export/client.c
@@ -309,7 +309,8 @@ client_lookup(char *hname, int canonical
init_addrlist(clp, ai);

out:
- freeaddrinfo(ai);
+ if (ai)
+ freeaddrinfo(ai);
return clp;
}