From 91f8beba90252aa38cad65e7f211859b9feff5e9 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 31 Jan 2023 23:26:04 -0500 Subject: e4defrag: avoid potential buffer overflow caused by very long file names Addresses-Coverity-Bug: 1520603 Signed-off-by: Theodore Ts'o --- misc/e4defrag.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/misc/e4defrag.c b/misc/e4defrag.c index 33bd05d2..99bc2cd7 100644 --- a/misc/e4defrag.c +++ b/misc/e4defrag.c @@ -1041,7 +1041,7 @@ static int file_statistic(const char *file, const struct stat64 *buf, __u64 size_per_ext = 0; float ratio = 0.0; ext4_fsblk_t blk_count = 0; - char msg_buffer[PATH_MAX + 24]; + char msg_buffer[PATH_MAX + 48]; struct fiemap_extent_list *physical_list_head = NULL; struct fiemap_extent_list *logical_list_head = NULL; @@ -1210,8 +1210,9 @@ static int file_statistic(const char *file, const struct stat64 *buf, if (mode_flag & DETAIL) { /* Print statistic info */ - sprintf(msg_buffer, "[%u/%u]%s", - defraged_file_count, total_count, file); + sprintf(msg_buffer, "[%u/%u]%.*s", + defraged_file_count, total_count, + PATH_MAX, file); if (current_uid == ROOT_UID) { if (strlen(msg_buffer) > 40) printf("\033[79;0H\033[K%s\n" -- cgit v1.2.1