Date: Thu, 20 Oct 2011 22:56:02 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Sean Bruno <sbruno@freebsd.org> Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-7@freebsd.org Subject: Re: svn commit: r226580 - stable/7/libexec/tftpd Message-ID: <20111020195602.GD50300@deviant.kiev.zoral.com.ua> In-Reply-To: <201110201923.p9KJNLjx088180@svn.freebsd.org> References: <201110201923.p9KJNLjx088180@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--uLm21ivgZj9Xvi41 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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 >=20 > Log: > MFC r224536: > Confirmed behavior of a Cisco 6509 in production. > =20 > 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 megaby= tes. > =20 > The new TFTP server code would report an error and stop transferring > the file if a file was larger than 65535 blocks. > =20 > 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. > =20 > 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. > =20 > 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. > =20 > > 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. > =20 > M tftpd/tftp-transfer.c >=20 > Modified: > stable/7/libexec/tftpd/tftp-transfer.c >=20 > Modified: stable/7/libexec/tftpd/tftp-transfer.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- stable/7/libexec/tftpd/tftp-transfer.c Thu Oct 20 19:16:52 2011 (r226= 579) > +++ stable/7/libexec/tftpd/tftp-transfer.c Thu Oct 20 19:23:21 2011 (r226= 580) > @@ -129,14 +129,16 @@ tftp_send(int peer, uint16_t *block, str > (*block)++; > if (oldblock > *block) { > if (options[OPT_ROLLOVER].o_request =3D=3D 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 =3D 0; > + } else { > + *block =3D atoi(options[OPT_ROLLOVER].o_request); > } > =20 > - *block =3D atoi(options[OPT_ROLLOVER].o_request); > ts->rollovers++; > } > gettimeofday(&(ts->tstop), NULL); > @@ -196,14 +198,16 @@ tftp_receive(int peer, uint16_t *block,=20 > (*block)++; > if (oldblock > *block) { > if (options[OPT_ROLLOVER].o_request =3D=3D 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 =3D 0; > + } else { > + *block =3D atoi(options[OPT_ROLLOVER].o_request); > } > =20 > - *block =3D atoi(options[OPT_ROLLOVER].o_request); > ts->rollovers++; > } > =20 --uLm21ivgZj9Xvi41 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk6gfNIACgkQC3+MBN1Mb4jN1QCgx7o4jAnkdwQriqN3ov5LOWXn eUEAn1wIChRx6yh/ZnE9K6PrqzofNXYl =1RD/ -----END PGP SIGNATURE----- --uLm21ivgZj9Xvi41--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111020195602.GD50300>