diff --git a/src/add-ons/kernel/file_systems/fat/file.c b/src/add-ons/kernel/file_systems/fat/file.c index 094b4448b5..f06102115a 100644 --- a/src/add-ons/kernel/file_systems/fat/file.c +++ b/src/add-ons/kernel/file_systems/fat/file.c @@ -1018,6 +1018,11 @@ dosfs_rename(fs_volume *_vol, fs_vnode *_odir, const char *oldname, DPRINTF(0, ("dosfs_rename called: %Lx/%s->%Lx/%s\n", odir->vnid, oldname, ndir->vnid, newname)); + if (!oldname || !(*oldname) || !newname || !(*newname)) { + result = EINVAL; + goto bi; + } + if(!is_filename_legal(newname)) { dprintf("dosfs_rename called with invalid name '%s'\n", newname); result = EINVAL; @@ -1030,11 +1035,6 @@ dosfs_rename(fs_volume *_vol, fs_vnode *_odir, const char *oldname, goto bi; } - if (!oldname || !(*oldname) || !newname || !(*newname)) { - result = EINVAL; - goto bi; - } - if ((odir->vnid == ndir->vnid) && !strcmp(oldname, newname)) { result = EPERM; goto bi;