diff --git a/src/stream.c b/src/stream.c index f6f69e4cb..c70e5b049 100644 --- a/src/stream.c +++ b/src/stream.c @@ -2574,7 +2574,10 @@ static int readmembuf(membuf_t *membuf, unsigned char *buff, int n, char *msg) lock(&membuf->lock); for (i=membuf->rp;i!=membuf->wp&&nr=membuf->bufsize) i=0; + if (i>=membuf->bufsize) { + i=0; + if(i==membuf->wp) break; + } buff[nr++]=membuf->buf[i]; } membuf->rp=i; @@ -3351,4 +3354,4 @@ extern void strsendcmd(stream_t *str, const char *cmd) } if (*q=='\0') break; else p=q+1; } -} \ No newline at end of file +}