Hello,
RFC 2132 says that a NVT string shouldn't contain any trailing NUL
but it also says that any client must delete trailing NULs, if any. So
I wrote a patch for etherboot-4.6.2, to make it more robust. Here it
is:
--- main.c.orig Thu Jun 8 00:31:53 2000
+++ main.c Thu Jun 8 00:29:40 2000
@@ -1025,8 +1025,20 @@
extdata = extend = endp;
if (block == 0 && extpath != NULL) {
char fname[64];
- memcpy(fname, extpath+2, TAG_LEN(extpath));
- fname[(int)TAG_LEN(extpath)] = '\000';
+ int fnamelen = TAG_LEN(extpath);
+
+ while (*(extpath+2+fnamelen-1) == '\000' && fnamelen > 0)
+ fnamelen--;
+ if (fnamelen + 1 > sizeof (fname)) {
+ printf("Too long filename for Extensions Path.\n");
+ return 0;
+ }
+ else if (fnamelen == 0) {
+ printf("Empty filename for Extensions Path.\n");
+ return 0;
+ }
+ memcpy(fname, extpath+2, fnamelen);
+ fname[fnamelen] = '\000';
printf("Loading BOOTP-extension file: %s\n",fname);
download(fname,decode_rfc1533);
}
Regards,
Okuji
===========================================================================
This Mail was sent to netboot mailing list by:
OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
To get help about this list, send a mail with 'help' as the only string in
it's body to majordomo@baghira.han.de. If you have problems with this list,
send a mail to netboot-owner@baghira.han.de.
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.