summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2003-06-16 20:48:56 +0000
committeriedowse <iedowse@FreeBSD.org>2003-06-16 20:48:56 +0000
commit1c34d301c1f016c4510c202d478e91fc0688e70f (patch)
treed70f18397a994ee34cca49455e4927a7feac8c46 /sys/boot
parentbdcc4ca5e8e231237d03c8af56189b1dd2e80172 (diff)
downloadFreeBSD-src-1c34d301c1f016c4510c202d478e91fc0688e70f.zip
FreeBSD-src-1c34d301c1f016c4510c202d478e91fc0688e70f.tar.gz
When looking for the ':' separator in the root path, don't go past
the terminating '\0'. Since the initialisation of rootpath in libstand/bootp.c may copy junk into the rest of the buffer, it was possible for the code to find a ':' after the '\0' and do the wrong thing. Reviewed by: ps MFC after: 1 week
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/libi386/pxe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/boot/i386/libi386/pxe.c b/sys/boot/i386/libi386/pxe.c
index 6e01a28..68081df 100644
--- a/sys/boot/i386/libi386/pxe.c
+++ b/sys/boot/i386/libi386/pxe.c
@@ -286,10 +286,10 @@ pxe_open(struct open_file *f, ...)
if (!rootpath[1])
strcpy(rootpath, PXENFSROOTPATH);
- for (i = 0; i < FNAME_SIZE; i++)
+ for (i = 0; rootpath[i] != '\0' && i < FNAME_SIZE; i++)
if (rootpath[i] == ':')
break;
- if (i && i != FNAME_SIZE) {
+ if (i && i != FNAME_SIZE && rootpath[i] == ':') {
rootpath[i++] = '\0';
if (inet_addr(&rootpath[0]) != INADDR_NONE)
rootip.s_addr = inet_addr(&rootpath[0]);
OpenPOWER on IntegriCloud