diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike index 0b3bd4d008f73733de133aa213f3d07c3e3819c5..78e2c7588ee3aeee24007b33773c332d4b4da3e7 100644 --- a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike +++ b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike @@ -430,7 +430,7 @@ OUTER: while (sizeof(buf) > cpos) { if (sscanf(buf[cpos..f], "%x", np)) { if (np) cpos = f+np+4; else { - if (sscanf(buf[cpos..f+3], "%*x%*[ ]%s", data) + if (sscanf(buf[cpos..f+3], "%*x%*[^\r\n]%s", data) == 3 && sizeof(data) == 4) break; return; } @@ -891,7 +891,7 @@ string data(int|void max_length) DBG("got %d; chunk: %O left: %d\n",strlen(lbuf),rbuf[..40],strlen(rbuf)); - if (sscanf(rbuf,"%x%*[ ]\r\n%s",len,s)==3) + if (sscanf(rbuf,"%x%*[^\r\n]\r\n%s",len,s)==3) { if (len==0) {