mirror of
https://github.com/owntone/owntone-server.git
synced 2025-04-01 02:03:45 -04:00
[mpd] Quoted argument unescaping fixed
This commit is contained in:
parent
84fc4622d5
commit
5a960a3450
24
src/mpd.c
24
src/mpd.c
@ -313,32 +313,36 @@ static char*
|
|||||||
mpd_pars_quoted(char **input)
|
mpd_pars_quoted(char **input)
|
||||||
{
|
{
|
||||||
char *arg;
|
char *arg;
|
||||||
|
char *src;
|
||||||
|
char *dst;
|
||||||
|
char ch;
|
||||||
|
|
||||||
// skip double quote character
|
// skip double quote character
|
||||||
(*input)++;
|
(*input)++;
|
||||||
|
|
||||||
arg = *input;
|
src = dst = arg = *input;
|
||||||
|
while ((ch = *src) != '"')
|
||||||
while (**input != '"')
|
|
||||||
{
|
{
|
||||||
// A backslash character escapes the following character
|
// A backslash character escapes the following character and should be removed
|
||||||
if (**input == '\\')
|
if (ch == '\\')
|
||||||
{
|
{
|
||||||
(*input)++;
|
ch = *(++src);
|
||||||
}
|
}
|
||||||
|
*dst++ = ch;
|
||||||
|
|
||||||
if (**input == 0)
|
if (ch == 0)
|
||||||
{
|
{
|
||||||
// Error handling for missing double quote at end of parameter
|
// Error handling for missing double quote at end of parameter
|
||||||
DPRINTF(E_LOG, L_MPD, "Error missing closing double quote in argument\n");
|
DPRINTF(E_LOG, L_MPD, "Error missing closing double quote in argument\n");
|
||||||
|
*input = src;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
(*input)++;
|
++src;
|
||||||
}
|
}
|
||||||
|
|
||||||
**input = '\0';
|
*dst = '\0';
|
||||||
(*input)++;
|
*input = ++src;
|
||||||
|
|
||||||
return arg;
|
return arg;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user