Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Sep 2001 03:42:14 +0200 (CEST)
From:      Dan Lukes <dan@obluda.cz>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/30863: bootpd/dovend.c Win95 compatibility improvement and typos in error messages
Message-ID:  <200109270142.f8R1gEH43139@xkulesh.vol.cz>

next in thread | raw e-mail | index | archive | help

>Number:         30863
>Category:       bin
>Synopsis:       bootpd/dovend.c Win95 compatibility improvement and typos in error messages
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 27 01:00:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Dan Lukes
>Release:        FreeBSD 4.4-STABLE i386
>Organization:
Obludarium
>Environment:
System: FreeBSD 4.4-STABLE #31: Thu Sep 20 23:06:53 CEST 2001 i386

>Description:
	There are several copy&paste typos in NEED macro causing incorrect
error messages.

	Win95 release ignore dn (domain-name) field unless <NUL> terminated.
Padding shouldn't cause a problem on other systems

>How-To-Repeat:
>Fix:
--- libexec/bootpd/dovend.c.orig	Sat Aug 28 02:09:17 1999
+++ libexec/bootpd/dovend.c	Thu Sep 27 03:34:41 2001
@@ -137,14 +138,17 @@
 		/*
 		 * Check for room for domain_name.  Add 2 to account for
 		 * TAG_DOMAIN_NAME and length.
+		 * Add one more for a 'PAD' option to make
+		 * the string zero-terminated for Win95 to work.
 		 */
 		len = strlen(hp->domain_name->string);
-		NEED((len + 2), "dn");
+		NEED((len + 3), "dn");
 		*vp++ = TAG_DOMAIN_NAME;
 		*vp++ = (byte) (len & 0xFF);
 		bcopy(hp->domain_name->string, vp, len);
 		vp += len;
-		bytesleft -= len + 2;
+		bytesleft -= len + 3;
+		*vp++ = '\0';		/* Courtesy to M$ */
 	}
 	/*
 	 * NIS (YP) server and domain
@@ -153,7 +157,7 @@
 		if (insert_ip(TAG_NIS_SERVER,
 					  hp->nis_server,
 					  &vp, &bytesleft))
-			NEED(8, "ds");
+			NEED(8, "ys");
 	}
 	if (hp->flags.nis_domain) {
 		/*
@@ -161,7 +165,7 @@
 		 * TAG_NIS_DOMAIN and length.
 		 */
 		len = strlen(hp->nis_domain->string);
-		NEED((len + 2), "dn");
+		NEED((len + 2), "yn");
 		*vp++ = TAG_NIS_DOMAIN;
 		*vp++ = (byte) (len & 0xFF);
 		bcopy(hp->nis_domain->string, vp, len);
@@ -193,7 +197,7 @@
 		if (insert_ip(TAG_NTP_SERVER,
 					  hp->ntp_server,
 					  &vp, &bytesleft))
-			NEED(8, "ts");
+			NEED(8, "nt");
 	}
 	/*
 	 * I wonder:  If the hostname were "promoted" into the BOOTP
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200109270142.f8R1gEH43139>