From f1c9e12aa3e4f2dc97889a4c16bdbbe289ff6ab3 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 19 Oct 2022 15:36:49 -0400 Subject: [PATCH] NTFS: Truncated pathnames should be an error, not a warning. May help with #17964. --- src/add-ons/kernel/file_systems/ntfs/utils/utils.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/ntfs/utils/utils.c b/src/add-ons/kernel/file_systems/ntfs/utils/utils.c index f714dbfc9f..d351dcc1da 100644 --- a/src/add-ons/kernel/file_systems/ntfs/utils/utils.c +++ b/src/add-ons/kernel/file_systems/ntfs/utils/utils.c @@ -211,7 +211,7 @@ int utils_valid_device(const char *name, int force) unsigned long mnt_flags = 0; struct stat st; -#if defined(HAVE_WINDOWS_H) | defined(__CYGWIN32__) +#if defined(HAVE_WINDOWS_H) | defined(__CYGWIN32__) /* FIXME: This doesn't work for Cygwin, so just return success. */ return 1; #endif @@ -624,7 +624,13 @@ int utils_inode_get_name(ntfs_inode *inode, char *buffer, int bufsize) len = snprintf(buffer + offset, bufsize - offset, "%c%s", PATH_SEP, names[i]); if (len >= (bufsize - offset)) { ntfs_log_error("Pathname was truncated.\n"); +#ifdef __HAIKU__ + for (i = 0; i < max_path; i++) + free(names[i]); + return 0; +#else break; +#endif } offset += len;