When the input file is not a path, memory is allocated and reassigned to the variable 'fname' and never freed.
Track this use case with the new variable 'local_fname' and free the memory after its use. The fname qualify 'const' is removed because the variable really isn't const and scan-build complains of use of const with free. The variable 'ret' introduced to hold the return status of mkfs_msdos() so fname could be freed.