1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

RTSP followup fix. Both the pipelined and non-pipelined case need to

check for (excess > 0 && !k->ignorebody).
This commit is contained in:
Yang Tse 2010-01-29 01:16:23 +00:00
parent 15ddc1f134
commit fce02e1cab

View File

@ -619,10 +619,10 @@ static CURLcode readwrite_data(struct SessionHandle *data,
(k->bytecount + nread >= k->maxdownload)) { (k->bytecount + nread >= k->maxdownload)) {
excess = (size_t)(k->bytecount + nread - k->maxdownload); excess = (size_t)(k->bytecount + nread - k->maxdownload);
if(excess > 0 && !k->ignorebody) {
if(conn->data->multi && Curl_multi_canPipeline(conn->data->multi)) { if(conn->data->multi && Curl_multi_canPipeline(conn->data->multi)) {
/* The 'excess' amount below can't be more than BUFSIZE which /* The 'excess' amount below can't be more than BUFSIZE which
always will fit in a size_t */ always will fit in a size_t */
if(excess > 0 && !k->ignorebody) {
infof(data, infof(data,
"Rewinding stream by : %zu" "Rewinding stream by : %zu"
" bytes on url %s (size = %" FORMAT_OFF_T " bytes on url %s (size = %" FORMAT_OFF_T
@ -632,7 +632,6 @@ static CURLcode readwrite_data(struct SessionHandle *data,
k->size, k->maxdownload, k->bytecount, nread); k->size, k->maxdownload, k->bytecount, nread);
read_rewind(conn, excess); read_rewind(conn, excess);
} }
}
else { else {
infof(data, infof(data,
"Excess found in a non pipelined read:" "Excess found in a non pipelined read:"
@ -642,6 +641,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
", bytecount = %" FORMAT_OFF_T "\n", ", bytecount = %" FORMAT_OFF_T "\n",
excess, k->size, k->maxdownload, k->bytecount); excess, k->size, k->maxdownload, k->bytecount);
} }
}
nread = (ssize_t) (k->maxdownload - k->bytecount); nread = (ssize_t) (k->maxdownload - k->bytecount);
if(nread < 0 ) /* this should be unusual */ if(nread < 0 ) /* this should be unusual */