From 300bb9d44377244ba9ef962a8f60c4ea1b76edf8 Mon Sep 17 00:00:00 2001 From: Bill Ferguson Date: Sat, 19 Oct 2024 22:04:56 -0400 Subject: [PATCH 1/3] lib/dtutils/string - fixed _should_be_sanitized with new patterns to detect non safe filename characters --- lib/dtutils/string.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/dtutils/string.lua b/lib/dtutils/string.lua index 5cf49cd..ff8f73e 100644 --- a/lib/dtutils/string.lua +++ b/lib/dtutils/string.lua @@ -306,8 +306,16 @@ end local function _should_be_sanitized(str) local old_log_level = log.log_level() local result = false + local SAFE_POSIX_FILENAME_CHARS = "[^%w/._%-]+" + local SAFE_WIN_FILENAME_CHARS = "[^%w\\._%-:]+" + + local pattern = SAFE_POSIX_STRING_CHARS + if dt.configuration.running_os == "windows" then + pattern = SAFE_WIN_STRING_CHARS + end + log.log_level(dtutils_string.log_level) - if string.match(str, "[^%g]") then + if string.match(str, pattern) then result = true end log.log_level(old_log_level) From 1b5cb1ae6ef64173872f556d86ba24f8303769d2 Mon Sep 17 00:00:00 2001 From: Bill Ferguson Date: Mon, 28 Oct 2024 20:18:22 -0400 Subject: [PATCH 2/3] lib/dtutils/string - corrected constrant names in assignment --- lib/dtutils/string.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/dtutils/string.lua b/lib/dtutils/string.lua index ff8f73e..c142b1a 100644 --- a/lib/dtutils/string.lua +++ b/lib/dtutils/string.lua @@ -309,9 +309,9 @@ local function _should_be_sanitized(str) local SAFE_POSIX_FILENAME_CHARS = "[^%w/._%-]+" local SAFE_WIN_FILENAME_CHARS = "[^%w\\._%-:]+" - local pattern = SAFE_POSIX_STRING_CHARS + local pattern = SAFE_POSIX_FILENAME_CHARS if dt.configuration.running_os == "windows" then - pattern = SAFE_WIN_STRING_CHARS + pattern = SAFE_WIN_FILENAME_CHARS end log.log_level(dtutils_string.log_level) From e7dbd6e369cb0e402f9f00894edfbbf1c38adcec Mon Sep 17 00:00:00 2001 From: Bill Ferguson Date: Mon, 28 Oct 2024 20:41:02 -0400 Subject: [PATCH 3/3] lib/dtutils/string - fixed constant names to correctly define the patterns as the unsafe filename characters. --- lib/dtutils/string.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/dtutils/string.lua b/lib/dtutils/string.lua index c142b1a..c8a1ce9 100644 --- a/lib/dtutils/string.lua +++ b/lib/dtutils/string.lua @@ -306,12 +306,12 @@ end local function _should_be_sanitized(str) local old_log_level = log.log_level() local result = false - local SAFE_POSIX_FILENAME_CHARS = "[^%w/._%-]+" - local SAFE_WIN_FILENAME_CHARS = "[^%w\\._%-:]+" + local UNSAFE_POSIX_FILENAME_CHARS = "[^%w/._%-]+" + local UNSAFE_WIN_FILENAME_CHARS = "[^%w\\._%-:]+" - local pattern = SAFE_POSIX_FILENAME_CHARS + local pattern = UNSAFE_POSIX_FILENAME_CHARS if dt.configuration.running_os == "windows" then - pattern = SAFE_WIN_FILENAME_CHARS + pattern = UNSAFE_WIN_FILENAME_CHARS end log.log_level(dtutils_string.log_level)