NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-i386/56956: i386/pxeboot: cannot load netbsd kernel larger than 32 MiB with TFTP



The following reply was made to PR port-i386/56956; it has been noted by GNATS.

From: Rin Okuyama <rokuyama.rk%gmail.com@localhost>
To: gnats-bugs%netbsd.org@localhost, port-i386-maintainer%netbsd.org@localhost,
 gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost, wataash%wataash.com@localhost
Cc: 
Subject: Re: port-i386/56956: i386/pxeboot: cannot load netbsd kernel larger
 than 32 MiB with TFTP
Date: Sun, 7 Aug 2022 15:02:40 +0900

 This is because th_block in TFTP header is 16-bit width.
 
 This patch should work around the problem, although I'm not
 100% sure whether this is correct fix:
 
 ----
 Index: tftp.c
 ===================================================================
 RCS file: /cvsroot/src/sys/lib/libsa/tftp.c,v
 retrieving revision 1.38
 diff -p -u -r1.38 tftp.c
 --- tftp.c	7 Aug 2022 05:51:55 -0000	1.38
 +++ tftp.c	7 Aug 2022 05:57:15 -0000
 @@ -114,7 +114,7 @@ recvtftp(struct iodesc *d, void *pkt, si
   	t = (struct tftphdr *)pkt;
   	switch (ntohs(t->th_opcode)) {
   	case DATA:
 -		if (ntohs(t->th_block) != d->xid) {
 +		if (ntohs(t->th_block) != (u_short)d->xid) {
   			/*
   			 * Expected block?
   			 */
 ----
 
 Note that this is patch for tftp.c,v 1.38, which I committed
 just now.
 
 Also note that, since seek is impossible for TFTP, NFS boot
 should be much faster than TFTP boot.
 
 Thanks,
 rin
 


Home | Main Index | Thread Index | Old Index