From: Jean-Jacques Hiblot Date: Thu, 21 Dec 2017 11:49:47 +0000 (+0100) Subject: fat write: Fixed a problem with the case of file names when writing files X-Git-Tag: v2018.03-rc1~214 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2c33b0c7d8deca7e9a907365a59fcbcde531c70d;p=oweals%2Fu-boot.git fat write: Fixed a problem with the case of file names when writing files 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 --- diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index 9d2e0ed74c..cd65192da5 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++;