svn commit: r226580 - stable/7/libexec/tftpd
Kostik Belousov
kostikbel at gmail.com
Thu Oct 20 19:56:08 UTC 2011
On Thu, Oct 20, 2011 at 07:23:21PM +0000, Sean Bruno wrote:
> Author: sbruno
> Date: Thu Oct 20 19:23:21 2011
> New Revision: 226580
> URL: http://svn.freebsd.org/changeset/base/226580
>
> Log:
> MFC r224536:
> Confirmed behavior of a Cisco 6509 in production.
>
> In the old TFTP server, there was an undocumented behavior where
> the block counter would rollover to 0 if a file larger
> than 65535 blocks was transferred. With the default block size
> of 512 octets per block, this is a file size of approximately 32 megabytes.
>
> The new TFTP server code would report an error and stop transferring
> the file if a file was larger than 65535 blocks.
>
> This patch restores the old TFTP server's behavior to the new
> TFTP server code. If a TFTP client transfers a file larger
> than 65535 blocks, and does *not* specify the "rollover" option,
> then automatically rollover the block counter to 0 every time
> we reach 65535 blocks.
>
> This restores interoperability with the FreeBSD 6 TFTP client.
> Without this change, if a FreeBSD 6 TFTP client tried to
> retrieve a file larger than 65535 blocks from a FreeBSD 9 TFTP server
> , the transfer would fail.
> The same file could be retrieved successfully if the same FreeBSD 6
> TFTP client was used against a FreeBSD 6 TFTP server.
>
> Approved by: re (kib)
It was not. It looks like people just think that 'Approved by: kib'
is some voodo that must be appended for no reason. Today it is second
time happened for the commit that I did not approved.
It does not matter much for the branch opened for the general commits.
Still, I would prefer that people do not falsely accuse me of wrongdoing :).
> Tested by: Pawan Gupta <pawang at juniper dot net>,
> Obtained from: Juniper Networks
> FreeBSD7 Reviewed by: Yahoo Inc.
>
> > Submitted by: If someone else sent in the change.
> > Reviewed by: If someone else reviewed your modification.
> > Approved by: If you needed approval for this commit.
> > Obtained from: If the change is from a third party.
> > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email.
> > Security: Vulnerability reference (one per line) or description.
> > Empty fields above will be automatically removed.
>
> M tftpd/tftp-transfer.c
>
> Modified:
> stable/7/libexec/tftpd/tftp-transfer.c
>
> Modified: stable/7/libexec/tftpd/tftp-transfer.c
> ==============================================================================
> --- stable/7/libexec/tftpd/tftp-transfer.c Thu Oct 20 19:16:52 2011 (r226579)
> +++ stable/7/libexec/tftpd/tftp-transfer.c Thu Oct 20 19:23:21 2011 (r226580)
> @@ -129,14 +129,16 @@ tftp_send(int peer, uint16_t *block, str
> (*block)++;
> if (oldblock > *block) {
> if (options[OPT_ROLLOVER].o_request == NULL) {
> - tftp_log(LOG_ERR,
> - "Block rollover but not allowed.");
> - send_error(peer, EBADOP);
> - gettimeofday(&(ts->tstop), NULL);
> - return;
> + /*
> + * "rollover" option not specified in
> + * tftp client. Default to rolling block
> + * counter to 0.
> + */
> + *block = 0;
> + } else {
> + *block = atoi(options[OPT_ROLLOVER].o_request);
> }
>
> - *block = atoi(options[OPT_ROLLOVER].o_request);
> ts->rollovers++;
> }
> gettimeofday(&(ts->tstop), NULL);
> @@ -196,14 +198,16 @@ tftp_receive(int peer, uint16_t *block,
> (*block)++;
> if (oldblock > *block) {
> if (options[OPT_ROLLOVER].o_request == NULL) {
> - tftp_log(LOG_ERR,
> - "Block rollover but not allowed.");
> - send_error(peer, EBADOP);
> - gettimeofday(&(ts->tstop), NULL);
> - return;
> + /*
> + * "rollover" option not specified in
> + * tftp client. Default to rolling block
> + * counter to 0.
> + */
> + *block = 0;
> + } else {
> + *block = atoi(options[OPT_ROLLOVER].o_request);
> }
>
> - *block = atoi(options[OPT_ROLLOVER].o_request);
> ts->rollovers++;
> }
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-stable/attachments/20111020/ffccad7a/attachment.pgp
More information about the svn-src-stable
mailing list