--- grip-2.96/cddb.c.buffer 2001-07-16 12:05:54.000000000 -0400 +++ grip-2.96/cddb.c 2005-03-16 15:02:09.000000000 -0500 @@ -298,6 +298,12 @@ CDDBReadLine(socket,inbuffer,256); + if (*inbuffer == '\0') { + query->query_match=MATCH_NOMATCH; + CDDBDisconnect(socket); + return FALSE; + } + /* Skip the keep-alive */ if((strlen(inbuffer)<5)||!strncmp(inbuffer,"Keep",4)) { Debug("Skipping keepalive\n"); @@ -327,7 +333,7 @@ query->query_match=MATCH_INEXACT; query->query_matches=0; - while(!CDDBReadLine(socket,inbuffer,256)) { + while(query->query_matches < MAX_INEXACT_MATCHES && !CDDBReadLine(socket,inbuffer,256)) { query->query_list[query->query_matches].list_genre= CDDBGenreValue(ChopWhite(strtok(inbuffer," ")));