diff --git a/source/ui/section/remoteinstall.c b/source/ui/section/remoteinstall.c index e4b5faa..1d7c2b1 100644 --- a/source/ui/section/remoteinstall.c +++ b/source/ui/section/remoteinstall.c @@ -47,18 +47,24 @@ static Result remoteinstall_set_last_urls(const char* urls) { FS_Archive sdmcArchive = 0; if(R_SUCCEEDED(res = FSUSER_OpenArchive(&sdmcArchive, ARCHIVE_SDMC, fsMakePath(PATH_EMPTY, "")))) { FS_Path path = fsMakePath(PATH_ASCII, "/fbi/lasturls"); - if(urls == NULL || strlen(urls) == 0) { - res = FSUSER_DeleteFile(sdmcArchive, path); - } else if(R_SUCCEEDED(res = util_ensure_dir(sdmcArchive, "/fbi/"))) { - Handle file = 0; - if(R_SUCCEEDED(res = FSUSER_OpenFile(&file, sdmcArchive, path, FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { - u32 bytesWritten = 0; - res = FSFILE_Write(file, &bytesWritten, 0, urls, strlen(urls), FS_WRITE_FLUSH | FS_WRITE_UPDATE_TIME); - Result closeRes = FSFILE_Close(file); - if(R_SUCCEEDED(res)) { - res = closeRes; - } + Handle file = 0; + if(R_SUCCEEDED(FSUSER_OpenFile(&file, sdmcArchive, path, FS_OPEN_READ, 0))) { + FSFILE_Close(file); + + res = FSUSER_DeleteFile(sdmcArchive, path); + } + + if(urls != NULL && strlen(urls) != 0 + && R_SUCCEEDED(res) + && R_SUCCEEDED(res = util_ensure_dir(sdmcArchive, "/fbi/")) + && R_SUCCEEDED(res = FSUSER_OpenFile(&file, sdmcArchive, path, FS_OPEN_WRITE | FS_OPEN_CREATE, 0))) { + u32 bytesWritten = 0; + res = FSFILE_Write(file, &bytesWritten, 0, urls, strlen(urls), FS_WRITE_FLUSH | FS_WRITE_UPDATE_TIME); + + Result closeRes = FSFILE_Close(file); + if(R_SUCCEEDED(res)) { + res = closeRes; } }