[U-Boot] [PATCH] fat write: Fixed a problem with the case of file names when writing files

Jean-Jacques Hiblot jjhiblot at ti.com
Thu Dec 21 11:49:47 UTC 2017


commit 21a24c3bf35b ("fs/fat: fix case for FAT shortnames") made it
possible that get_name() returns file names with some upper cases.
find_directory_entry() must be updated to take this account, and use
case-insensitive functions to compare file names.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot at ti.com>
---
 fs/fat/fat_write.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index 9d2e0ed..cd65192 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -842,8 +842,8 @@ static dir_entry *find_directory_entry(fsdata *mydata, int startsect,
 
 			get_name(dentptr, s_name);
 
-			if (strcmp(filename, s_name)
-			    && strcmp(filename, l_name)) {
+			if (strncasecmp(filename, s_name, sizeof(s_name)) &&
+			    strncasecmp(filename, l_name, sizeof(l_name))) {
 				debug("Mismatch: |%s|%s|\n",
 					s_name, l_name);
 				dentptr++;
-- 
1.9.1



More information about the U-Boot mailing list