OSDN Git Service

libbpf: Fix printing of ulimit value
authorToke Høiland-Jørgensen <toke@redhat.com>
Thu, 19 Dec 2019 09:02:36 +0000 (10:02 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 19 Dec 2019 15:25:52 +0000 (16:25 +0100)
Naresh pointed out that libbpf builds fail on 32-bit architectures because
rlimit.rlim_cur is defined as 'unsigned long long' on those architectures.
Fix this by using %zu in printf and casting to size_t.

Fixes: dc3a2d254782 ("libbpf: Print hint about ulimit when getting permission denied error")
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20191219090236.905059-1-toke@redhat.com
tools/lib/bpf/libbpf.c

index 6340b81..febbaac 100644 (file)
@@ -117,7 +117,7 @@ static void pr_perm_msg(int err)
                return;
 
        if (limit.rlim_cur < 1024)
-               snprintf(buf, sizeof(buf), "%lu bytes", limit.rlim_cur);
+               snprintf(buf, sizeof(buf), "%zu bytes", (size_t)limit.rlim_cur);
        else if (limit.rlim_cur < 1024*1024)
                snprintf(buf, sizeof(buf), "%.1f KiB", (double)limit.rlim_cur / 1024);
        else