From 6387d0352e11bf2f0ed6b29b1fca10d323dd1c6c Mon Sep 17 00:00:00 2001 From: Christian Soffke Date: Mon, 8 Mar 2021 13:33:43 +0100 Subject: 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 --- apps/onplay.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3