diff options
| author | Peter D'Hoye <peter.dhoye@gmail.com> | 2008-02-07 22:15:13 +0000 |
|---|---|---|
| committer | Peter D'Hoye <peter.dhoye@gmail.com> | 2008-02-07 22:15:13 +0000 |
| commit | c04f4976703e516d69f03ce3f9045ed73ac4fcdb (patch) | |
| tree | d7a2d5bf3b1fa3d49784b0a7e26a1535692e39b6 | |
| parent | 1b39f2e1175330a684fcd73735a50ab2db3e5a41 (diff) | |
| download | rockbox-c04f4976703e516d69f03ce3f9045ed73ac4fcdb.zip rockbox-c04f4976703e516d69f03ce3f9045ed73ac4fcdb.tar.gz rockbox-c04f4976703e516d69f03ce3f9045ed73ac4fcdb.tar.bz2 rockbox-c04f4976703e516d69f03ce3f9045ed73ac4fcdb.tar.xz | |
Let the FAT namecheck also look for trailing spaces, fixes FS #8560.
Only call the dircache rename function if the actual rename was ok.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16241 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/common/file.c | 7 | ||||
| -rw-r--r-- | firmware/drivers/fat.c | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c index f0437f9..613eba9 100644 --- a/firmware/common/file.c +++ b/firmware/common/file.c @@ -385,9 +385,6 @@ int rename(const char* path, const char* newpath) return - 5; file = &openfiles[fd]; -#ifdef HAVE_DIRCACHE - dircache_rename(path, newpath); -#endif rc = fat_rename(&file->fatfile, &dir->fatdir, nameptr, file->size, file->attr); @@ -404,6 +401,10 @@ int rename(const char* path, const char* newpath) return rc * 10 - 7; } +#ifdef HAVE_DIRCACHE + dircache_rename(path, newpath); +#endif + rc = close(fd); if (rc<0) { errno = EIO; diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c index dd0d4d6..9dd27cf 100644 --- a/firmware/drivers/fat.c +++ b/firmware/drivers/fat.c @@ -1202,6 +1202,10 @@ static int fat_checkname(const unsigned char* newname) return -1; newname++; } + /* check trailing space(s) */ + if(*(--newname) == ' ') + return -1; + return 0; } |