- Carsten Lange reported a bug and provided a patch for TFTP upload and the

sending of the TSIZE option. I don't like fixing bugs just hours before
  a release, but since it was broken and the patch fixes this for him I decided
  to get it in anyway.
This commit is contained in:
Daniel Stenberg 2009-08-12 08:19:39 +00:00
parent 4b44638f4d
commit 966cb698e6
3 changed files with 16 additions and 3 deletions

View File

@ -6,6 +6,12 @@
Changelog
Daniel Stenberg (12 Aug 2009)
- Carsten Lange reported a bug and provided a patch for TFTP upload and the
sending of the TSIZE option. I don't like fixing bugs just hours before
a release, but since it was broken and the patch fixes this for him I decided
to get it in anyway.
Daniel Stenberg (11 Aug 2009)
- Peter Sylvester made the HTTPS test server use specific certificates for
each test, so that the test suite can now be used to actually test the

View File

@ -44,6 +44,7 @@ This release includes the following bugfixes:
o don't try SNI with SSLv2 or SSLv3 (OpenSSL and GnuTLS builds)
o libcurl+OpenSSL would wrongly acknowledge a cert if CN matched but
subjectAltName didn't
o TFTP upload sent illegal TSIZE packets
This release includes the following known bugs:
@ -57,6 +58,7 @@ advice from friends like these:
Aaron Oneal, Igor Novoseltsev, Eric Wong, Bill Hoffman, Daniel Steinberg,
Fabian Keil, Michal Marek, Reuven Wachtfogel, Markus Koetter,
Constantine Sapuntzakis, David Binderman, Johan van Selst, Alexander Beedie,
Tanguy Fautre, Scott Cantor, Curt Bogmine, Peter Sylvester, Benbuck Nason
Tanguy Fautre, Scott Cantor, Curt Bogmine, Peter Sylvester, Benbuck Nason,
Carsten Lange
Thanks! (and sorry if I forgot to mention someone)

View File

@ -443,7 +443,7 @@ static CURLcode tftp_send_first(tftp_state_data_t *state, tftp_event_t event)
size_t sbytes;
const char *mode = "octet";
char *filename;
char buf[8];
char buf[64];
struct SessionHandle *data = state->conn->data;
CURLcode res = CURLE_OK;
@ -489,11 +489,16 @@ static CURLcode tftp_send_first(tftp_state_data_t *state, tftp_event_t event)
sbytes = 4 + strlen(filename) + strlen(mode);
/* add tsize option */
if(data->set.upload && (data->set.infilesize != -1))
snprintf( buf, sizeof(buf), "%" FORMAT_OFF_T, data->set.infilesize );
else
strcpy(buf, "0"); /* the destination is large enough */
sbytes += tftp_option_add(state, sbytes,
(char *)state->spacket.data+sbytes,
TFTP_OPTION_TSIZE);
sbytes += tftp_option_add(state, sbytes,
(char *)state->spacket.data+sbytes, "0");
(char *)state->spacket.data+sbytes, buf);
/* add blksize option */
snprintf( buf, sizeof(buf), "%d", state->requested_blksize );
sbytes += tftp_option_add(state, sbytes,