diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2024-07-25 21:28:01 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2024-07-25 21:28:01 -0400 |
commit | e8d7a8baaffbd9060842c8fa959fb5dabf8c0c43 (patch) | |
tree | cb337fbbc6f2ca774ed6e527e954205719419c0f | |
parent | 10e883fe02f7167967efc048ebc38d1c03ff39ab (diff) | |
download | rockbox-e8d7a8baaf.tar.gz rockbox-e8d7a8baaf.zip |
simulator: Fix browsing into secondary drive on multidrive targets
Change-Id: I4e993acdedb516f0ae4fc230a62cb00de8dcef86
-rw-r--r-- | uisimulator/common/filesystem-sim.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/uisimulator/common/filesystem-sim.c b/uisimulator/common/filesystem-sim.c index 7a3418021e..786f17e644 100644 --- a/uisimulator/common/filesystem-sim.c +++ b/uisimulator/common/filesystem-sim.c @@ -307,9 +307,12 @@ int sim_get_os_path(char *buffer, const char *path, size_t bufsize) #ifdef HAVE_MULTIVOLUME if (level != 1) break; /* Volume spec only valid @ root level */ + if (p[-1] != PATH_SEPCH) + break; const char *next; - volume = path_strip_volume(p, &next, true); + volume = path_strip_volume(p-1, &next, true); + if (volume == ROOT_VOLUME) volume = 0; /* FIXME: root no longer implies volume 0 */ @@ -831,7 +834,7 @@ int os_volume_path(IF_MV(int volume, ) char *buffer, size_t bufsize) char volname[VOL_MAX_LEN + 1]; get_volume_name(volume, volname); - if (path_append(tmpbuf, PA_SEP_HARD, volname, sizeof (volname)) + if (path_append(tmpbuf, PA_SEP_HARD, volname, sizeof (tmpbuf)) >= sizeof (volname)) return -1; #endif /* HAVE_MULTIVOLUME */ |