diff options
author | William Wilgus <wilgus.william@gmail.com> | 2021-08-03 22:22:02 -0400 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2021-08-05 11:01:29 +0000 |
commit | cb6b0d2c0e8835d360f85384d3eef53fcc17dc5a (patch) | |
tree | 03261e895018fea97d2cdcbeb6ef89b0e83a46ed | |
parent | d57900ae124d4b5553db6666959a6533d9e337b5 (diff) | |
download | rockbox-cb6b0d2c0e8835d360f85384d3eef53fcc17dc5a.tar.gz rockbox-cb6b0d2c0e8835d360f85384d3eef53fcc17dc5a.zip |
disk.c ensure a valid volume is returned from get_free_volume()
volume is used for element math and indexing into buffers
-1 volume is bad
Change-Id: I1ec75ef3a848c154ea80905224ea9a3a14bf8151
-rw-r--r-- | firmware/common/disk.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/firmware/common/disk.c b/firmware/common/disk.c index 51d033b678..c096878e86 100644 --- a/firmware/common/disk.c +++ b/firmware/common/disk.c | |||
@@ -174,6 +174,13 @@ int disk_mount(int drive) | |||
174 | 174 | ||
175 | int volume = get_free_volume(); | 175 | int volume = get_free_volume(); |
176 | 176 | ||
177 | if (volume < 0) | ||
178 | { | ||
179 | DEBUGF("No Free Volumes\n"); | ||
180 | disk_writer_unlock(); | ||
181 | return 0; | ||
182 | } | ||
183 | |||
177 | if (!disk_init(IF_MD(drive))) | 184 | if (!disk_init(IF_MD(drive))) |
178 | { | 185 | { |
179 | disk_writer_unlock(); | 186 | disk_writer_unlock(); |