cleanup reading from interface, when argArrayLength returned by buffer2array
is 0, we weren't dealing with this well at all! git-svn-id: https://svn.musicpd.org/mpd/trunk@559 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
9e382536dc
commit
f641d046fa
|
@ -61,6 +61,12 @@ int buffer2array(char * origBuffer, char *** array) {
|
||||||
}
|
}
|
||||||
markArray[bufferLength] = '\0';
|
markArray[bufferLength] = '\0';
|
||||||
|
|
||||||
|
if(!count) {
|
||||||
|
free(buffer);
|
||||||
|
free(markArray);
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
beginArray = malloc(sizeof(int)*count);
|
beginArray = malloc(sizeof(int)*count);
|
||||||
(*array) = malloc(sizeof(char *)*count);
|
(*array) = malloc(sizeof(char *)*count);
|
||||||
|
|
||||||
|
@ -107,6 +113,8 @@ int buffer2array(char * origBuffer, char *** array) {
|
||||||
void freeArgArray(char ** array, int argArrayLength) {
|
void freeArgArray(char ** array, int argArrayLength) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(argArrayLength==0) return;
|
||||||
|
|
||||||
for(i=0;i<argArrayLength;i++) {
|
for(i=0;i<argArrayLength;i++) {
|
||||||
free(array[i]);
|
free(array[i]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -229,7 +229,8 @@ int interfaceReadInput(Interface * interface) {
|
||||||
argArrayLength = buffer2array(interface->buffer,&argArray);
|
argArrayLength = buffer2array(interface->buffer,&argArray);
|
||||||
|
|
||||||
if(interface->commandList) {
|
if(interface->commandList) {
|
||||||
if(strcmp(argArray[0],INTERFACE_LIST_MODE_END)==0) {
|
if(argArrayLength==0);
|
||||||
|
else if(strcmp(argArray[0],INTERFACE_LIST_MODE_END)==0) {
|
||||||
ListNode * node = interface->commandList->firstNode;
|
ListNode * node = interface->commandList->firstNode;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
|
@ -273,14 +274,21 @@ int interfaceReadInput(Interface * interface) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(strcmp(argArray[0],INTERFACE_LIST_MODE_BEGIN)==0) {
|
if(argArrayLength &&
|
||||||
|
strcmp(argArray[0],
|
||||||
|
INTERFACE_LIST_MODE_BEGIN)==0)
|
||||||
|
{
|
||||||
interface->commandList = makeList(free);
|
interface->commandList = makeList(free);
|
||||||
interface->commandListSize =
|
interface->commandListSize =
|
||||||
sizeof(List);
|
sizeof(List);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(strcmp(argArray[0],INTERFACE_LIST_MODE_END)==0) {
|
if(argArrayLength==0) ret = 0;
|
||||||
|
else if(strcmp(argArray[0],
|
||||||
|
INTERFACE_LIST_MODE_END)
|
||||||
|
==0)
|
||||||
|
{
|
||||||
myfprintf(interface->fp,"%s not in command list mode\n",COMMAND_RESPOND_ERROR);
|
myfprintf(interface->fp,"%s not in command list mode\n",COMMAND_RESPOND_ERROR);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue