Bug 53763

Summary: tftp client fails to PUT
Product: [Retired] Red Hat Linux Reporter: Kjetil T. Homme <kjetilho>
Component: tftpAssignee: Phil Knirsch <pknirsch>
Status: CLOSED CURRENTRELEASE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-10-25 14:28:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Kjetil T. Homme 2001-09-17 22:57:23 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.4.7 i686)

Description of problem:
tftp would get an ACK from my Cisco router, but drop out of the
loop before it sent any data.  The problem is the size variable,
which is the size of the WRQ during firsttrip, not how many
octets were read from file.


Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Start tftp
2. Connect to Cisco 677i router
3. put some file


Additional info:

I fixed it by setting size = SEGSIZE when firsttrip in
tftp.c:sendfile()

                if (firsttrip) {
                        firsttrip = 0;
+                       size = SEGSIZE;
                }
                else {
                        amount += size;
                }

(I really can't understand how this bug could live this long, it must be
something about the tftp server people usually talk to.)

Comment 1 neal nuckolls 2001-10-05 22:04:13 UTC
> I really can't understand how this bug could live this long

I think netkit must not have any MAINTAINERS.

I just wasted a day tracking this bug in the netkit-0.17 tftp.c
sendfile() down.
The /usr/bin/tftp in RedHat 7.1 is plain broken.
The rh7.1 tftp comes from the netkit-tftp-0.17 package, not the 
gnu inetutils package.  Diffing the two leads me to believe that
the netkit tftp was derived from a previous version of gnu inetutils 
or they had a common ancestor.  The netkit tftp has lots of extra
cruft, some of which comes from a person who does not understand
the C language very well.  This person must never have tested his
tftp.c sendfile() change because it could never have worked.
The behavior is to send the WRQ (send file) request, get the ack,
then exit, never sending any data.         



Comment 2 Elliot Lee 2001-12-18 22:06:44 UTC
The setsegsize patch is in the RHL 7.2 tftp, I believe. Please give it a try.