summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorChristian Soffke <christian.soffke@gmail.com>2021-03-08 13:33:43 +0100
committerSolomon Peachy <pizza@shaftnet.org>2021-03-09 11:26:05 +0000
commit6387d0352e11bf2f0ed6b29b1fca10d323dd1c6c (patch)
tree7635546f2c4ea1a5979efe0ce019b99a79264f30 /apps
parent5c3bbc6a9c9954778002e379799c701d4900b29e (diff)
downloadrockbox-6387d0352e11bf2f0ed6b29b1fca10d323dd1c6c.tar.gz
rockbox-6387d0352e11bf2f0ed6b29b1fca10d323dd1c6c.tar.bz2
rockbox-6387d0352e11bf2f0ed6b29b1fca10d323dd1c6c.zip
FS#13263: Rockbox deletes wrong file
The WPS calls onplay() with a pointer to the path of the current track . We need to make a copy of the path so it isn't affected by track changes. Change-Id: I10a2a93da644932033e01ffbfd85cad20abb555d
Diffstat (limited to 'apps')
-rw-r--r--apps/onplay.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/apps/onplay.c b/apps/onplay.c
index 6f29df57cb..207c43f0a6 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -66,6 +66,7 @@
static int context;
static const char *selected_file = NULL;
+static char selected_file_path[MAX_PATH];
static int selected_file_attr = 0;
static int onplay_result = ONPLAY_OK;
extern struct menu_item_ex file_menu; /* settings_menu.c */
@@ -1856,7 +1857,13 @@ int onplay(char* file, int attr, int from, bool hotkey)
const struct menu_item_ex *menu;
onplay_result = ONPLAY_OK;
context = from;
- selected_file = file;
+ if (file == NULL)
+ selected_file = NULL;
+ else
+ {
+ strlcpy(selected_file_path, file, MAX_PATH);
+ selected_file = selected_file_path;
+ }
selected_file_attr = attr;
int menu_selection;
#ifdef HAVE_HOTKEY