Re: Bug in tftpd ?

2001-01-31 Thread Pascal Hofstee

Patches attached:
Obtained from: NetBSD

(Committed there about 3 months ago after we first spotted the problem in
their implementation)

-- 
  Pascal Hofstee   daeron @ shadowmere . student . utwente . nl 
  begin  LOVE-LETTER-FOR-YOU.TXT.vbs
 I'm a signature virus. Please copy me and help me spread.
  end


--- tftpd.8.origWed Jan 31 11:59:57 2001
+++ tftpd.8 Wed Jan 31 12:04:55 2001
@@ -192,3 +192,9 @@
 .Fl c
 option was introduced in
 .Fx 5.0 .
+.Sh BUGS
+Files larger than 33488896 octets (65535 blocks) cannot be transferred
+without client and server supporting blocksize negotiation (RFC1783).
+.Pp
+Many tftp clients will not transfer files over 1678 octets (32767 blocks).
+
--- tftpd.c.origWed Jan 31 11:55:53 2001
+++ tftpd.c Wed Jan 31 11:58:00 2001
@@ -501,7 +501,7 @@
struct tftphdr *dp, *r_init();
register struct tftphdr *ap;/* ack packet */
register int size, n;
-   volatile int block;
+   volatile unsigned int block;
 
signal(SIGALRM, timer);
dp = r_init();
@@ -571,7 +571,7 @@
struct tftphdr *dp, *w_init();
register struct tftphdr *ap;/* ack buffer */
register int n, size;
-   volatile int block;
+   volatile unsigned int block;
 
signal(SIGALRM, timer);
dp = w_init();



Re: Bug in tftpd ?

2001-01-31 Thread Pascal Hofstee

On Wed, Jan 31, 2001 at 12:13:54PM +0100, Pascal Hofstee wrote:
 Patches attached:
 Obtained from: NetBSD
 
 (Committed there about 3 months ago after we first spotted the problem in
 their implementation)

Ok .. I noticed a minor glitch in my previous patch ..
the  "unsigned int" should be "unsigned short"

Apparently NetBSD still uses the "unsigned int" so may still show the same
problem.  New patche attached.

-- 
  Pascal Hofstee   daeron @ shadowmere . student . utwente . nl 
  begin  LOVE-LETTER-FOR-YOU.TXT.vbs
 I'm a signature virus. Please copy me and help me spread.
  end


--- tftpd.8.origWed Jan 31 11:59:57 2001
+++ tftpd.8 Wed Jan 31 12:04:55 2001
@@ -192,3 +192,9 @@
 .Fl c
 option was introduced in
 .Fx 5.0 .
+.Sh BUGS
+Files larger than 33488896 octets (65535 blocks) cannot be transferred
+without client and server supporting blocksize negotiation (RFC1783).
+.Pp
+Many tftp clients will not transfer files over 1678 octets (32767 blocks).
+
--- tftpd.c.origWed Jan 31 11:55:53 2001
+++ tftpd.c Wed Jan 31 11:58:00 2001
@@ -501,7 +501,7 @@
struct tftphdr *dp, *r_init();
register struct tftphdr *ap;/* ack packet */
register int size, n;
-   volatile int block;
+   volatile unsigned short block;
 
signal(SIGALRM, timer);
dp = r_init();
@@ -571,7 +571,7 @@
struct tftphdr *dp, *w_init();
register struct tftphdr *ap;/* ack buffer */
register int n, size;
-   volatile int block;
+   volatile unsigned short block;
 
signal(SIGALRM, timer);
dp = w_init();