From 0bfdbfcbdd57d31506d436a2d17476c7cc349f12 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 2 Jul 2011 10:04:07 +0200 Subject: [PATCH] Fix execute not to mangle the argument when it prompts for it The argument is UTF-8. If it's missing, execute() gets it with getstring(), which mangles non-ASCII characters. Clients reject mangled file names for security reasons. Fix by switching to ugetstring(). Missed in commit 69832255, v4.3.11. Non-ASCII characters are still mangled in ASCII sessions, but that's not expected to work. --- src/lib/player/player.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/lib/player/player.c b/src/lib/player/player.c index eb87f7883..9b8d37a41 100644 --- a/src/lib/player/player.c +++ b/src/lib/player/player.c @@ -242,18 +242,17 @@ make_stale_if_command_arg(char *arg) int execute(void) { - char buf[1024]; + char buf[1024]; /* UTF-8 */ int failed; - char *p; + char *p; /* UTF-8 */ char *redir; /* UTF-8 */ char scanspace[1024]; failed = 0; - if (player->comtail[1]) - p = player->comtail[1]; - else - p = getstring("File? ", buf); + p = player->comtail[1]; + if (!p) + p = ugetstring("File? ", buf); if (p == NULL || *p == '\0') return RET_SYN; prexec(p); -- 2.43.0