Commit 958987c2 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Chunked-transfers should have an additional CRLF after the final 0 CRLF

sequence.
parent ed75842d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1614,7 +1614,7 @@ CURLcode Curl_http(struct connectdata *conn)
            /* Append the POST data chunky-style */
            add_bufferf(req_buffer, "%x\r\n", postsize);
            add_buffer(req_buffer, data->set.postfields, postsize);
            add_buffer(req_buffer, "\r\n0\r\n", 5); /* end of a chunked
            add_buffer(req_buffer, "\r\n0\r\n\r\n", 7); /* end of a chunked
                                                           transfer stream */
          }
        }
+7 −7
Original line number Diff line number Diff line
@@ -152,16 +152,16 @@ static int fillbuffer(struct connectdata *conn,

    /* copy the prefix to the buffer */
    memcpy(conn->upload_fromhere, hexbuffer, hexlen);
    if(nread>hexlen) {
      /* append CRLF to the data */
      memcpy(conn->upload_fromhere +
             nread, "\r\n", 2);
      nread+=2;
    }
    else {

    /* always append CRLF to the data */
    memcpy(conn->upload_fromhere + nread, "\r\n", 2);

    if((nread - hexlen) == 0) {
      /* mark this as done once this chunk is transfered */
      conn->keep.upload_done = TRUE;
    }

    nread+=2; /* for the added CRLF */
  }
  return nread;
}
+1 −0
Original line number Diff line number Diff line
@@ -48,5 +48,6 @@ Content-Type: application/x-www-form-urlencoded
c
we post this
0

</protocol>
</verify>