From 7bd1fb50c6415a21fae22f7bd534894e02b512bf Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 1 Jan 2018 13:51:40 +0000 Subject: Utils: Filename: Squash warning: -Wformat-truncation= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We need to check the snprintf return value, or GCC7 whinges: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=] --- utils/filename.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'utils') diff --git a/utils/filename.c b/utils/filename.c index 01a403fd9..f0e1bb0f5 100644 --- a/utils/filename.c +++ b/utils/filename.c @@ -272,15 +272,19 @@ bool filename_flush_directory(const char *folder, int depth) parent = opendir(folder); while ((entry = readdir(parent))) { - struct stat statbuf; + int written; + struct stat statbuf; /* Ignore '.' and '..' */ if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; - snprintf(child, sizeof(child), "%s/%s", folder, entry->d_name); - child[sizeof(child) - 1] = '\0'; + written = snprintf(child, sizeof(child), "%s/%s", + folder, entry->d_name); + if (written == sizeof(child)) { + child[sizeof(child) - 1] = '\0'; + } if (stat(child, &statbuf) == -1) { NSLOG(netsurf, INFO, "Unable to stat %s: %s", child, @@ -383,16 +387,21 @@ bool filename_delete_recursive(char *folder) parent = opendir(folder); while ((entry = readdir(parent))) { + int written; + /* Ignore '.' and '..' */ if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; - snprintf(child, sizeof(child), "%s/%s", folder, entry->d_name); - child[sizeof(child) - 1] = '\0'; + written = snprintf(child, sizeof(child), "%s/%s", + folder, entry->d_name); + if (written == sizeof(child)) { + child[sizeof(child) - 1] = '\0'; + } if (stat(child, &statbuf) == -1) { - NSLOG(netsurf, INFO, "Unable to stat %s: %s", child, + NSLOG(netsurf, INFO, "Unable to stat %s: %s", child, strerror(errno)); continue; } -- cgit v1.2.3