Commit fce02e1c authored by Yang Tse's avatar Yang Tse
Browse files

RTSP followup fix. Both the pipelined and non-pipelined case need to
check for (excess > 0 && !k->ignorebody).
parent 15ddc1f1
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -619,10 +619,10 @@ static CURLcode readwrite_data(struct SessionHandle *data,
         (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)) {
            /* The 'excess' amount below can't be more than BUFSIZE which
               always will fit in a size_t */
          if(excess > 0 && !k->ignorebody) {
            infof(data,
                "Rewinding stream by : %zu"
                " 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);
            read_rewind(conn, excess);
          }
        }
          else {
            infof(data,
                "Excess found in a non pipelined read:"
@@ -642,6 +641,7 @@ static CURLcode readwrite_data(struct SessionHandle *data,
                ", bytecount = %" FORMAT_OFF_T "\n",
                excess, k->size, k->maxdownload, k->bytecount);
          }
        }

        nread = (ssize_t) (k->maxdownload - k->bytecount);
        if(nread < 0 ) /* this should be unusual */