From 174ab64af2e8f9bb89f2d5983118953a7182b564 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 20 Sep 2021 13:30:28 +0200 Subject: [PATCH] lsfd: don't use 'long int' for file data Let's always assume positions, offsets, etc.. as 64-bit numbers. Signed-off-by: Karel Zak --- misc-utils/lsfd-file.c | 4 ++-- misc-utils/lsfd-sock.c | 2 +- misc-utils/lsfd.c | 4 ++-- misc-utils/lsfd.h | 7 ++++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/misc-utils/lsfd-file.c b/misc-utils/lsfd-file.c index dab7edca11..e609d67091 100644 --- a/misc-utils/lsfd-file.c +++ b/misc-utils/lsfd-file.c @@ -175,9 +175,9 @@ static void file_fill_flags_buf(struct ul_buffer *buf, int flags) || (file)->association == -ASSOC_SHM \ || (file)->association == -ASSOC_MEM) -static unsigned long get_map_length(struct file *file) +static uint64_t get_map_length(struct file *file) { - unsigned long res = 0; + uint64_t res = 0; if (is_association(file, SHM) || is_association(file, MEM)) { static size_t pagesize = 0; diff --git a/misc-utils/lsfd-sock.c b/misc-utils/lsfd-sock.c index 4ef82ba785..0ed5663778 100644 --- a/misc-utils/lsfd-sock.c +++ b/misc-utils/lsfd-sock.c @@ -95,7 +95,7 @@ static void init_sock_content(struct file *file) if (fd >= 0) sprintf(path, "/proc/%d/fd/%d", file->proc->pid, fd); else - sprintf(path, "/proc/%d/map_files/%lx-%lx", + sprintf(path, "/proc/%d/map_files/%"PRIx64 "-%" PRIx64, file->proc->pid, file->map_start, file->map_end); diff --git a/misc-utils/lsfd.c b/misc-utils/lsfd.c index 9e9fc0940a..2b7b1608f1 100644 --- a/misc-utils/lsfd.c +++ b/misc-utils/lsfd.c @@ -398,7 +398,7 @@ static struct file *collect_mem_file(struct proc *proc, int dd, struct dirent *d ssize_t len; char sym[PATH_MAX]; struct file *f; - unsigned long start, end; + uint64_t start, end; struct map *map; enum association assoc; mode_t mode = 0; @@ -412,7 +412,7 @@ static struct file *collect_mem_file(struct proc *proc, int dd, struct dirent *d map = NULL; - if (sscanf(dp->d_name, "%lx-%lx", &start, &end) == 2) + if (sscanf(dp->d_name, "%" SCNx64 "-%" SCNx64, &start, &end) == 2) map = find_map(maps, start); assoc = (map && map->shared)? ASSOC_SHM: ASSOC_MEM; diff --git a/misc-utils/lsfd.h b/misc-utils/lsfd.h index 31783d71f7..80727d0aee 100644 --- a/misc-utils/lsfd.h +++ b/misc-utils/lsfd.h @@ -27,6 +27,7 @@ #include #include #include +#include #include "list.h" @@ -111,10 +112,10 @@ struct file { struct stat stat; mode_t mode; struct proc *proc; - uint64_t pos; - unsigned long map_start; - unsigned long map_end; + uint64_t pos; + uint64_t map_start; + uint64_t map_end; unsigned int sys_flags; unsigned int mnt_id; -- 2.47.3